jackson 用法總結

1.序列化與反序列化封裝json

 

 private static final Logger logger = LoggerFactory.getLogger(JsonUtil.class);


    /**
     * Object對象轉換爲String
     *
     * @param data Object對象
     * @return Object對象對應的字符串
     */
    public static <T> String toJsonString(T data) {
        try {
            ObjectMapper om = new ObjectMapper();
            return om.writeValueAsString(data);
        } catch (JsonProcessingException ex) {
            if (logger.isErrorEnabled()) {
                logger.error("json parse error:", ex);
            }
            return "json parse error:" + ex.getMessage();
        }
    }

    /**
     * 字符串轉換爲對象
     *
     * @param json  字符串
     * @param clazz 類類型
     * @return clazz類型的對象
     */
    public static <R> R json2Object(String json, Class<R> clazz) {
        try {
            ObjectMapper om = new ObjectMapper();
            return om.readValue(json, clazz);
        } catch (Exception ex) {
            if (logger.isErrorEnabled()) {
                logger.error("json parse error:", ex);
            }
        }
        return null;
    }

    /**
     * 字節轉換爲對象
     *
     * @param jsonBuffer 字節
     * @param clazz      類類型
     * @return clazz類型的對象
     */
    public static <R> R json2Object(byte[] jsonBuffer, Class<R> clazz) {
        try {
            ObjectMapper om = new ObjectMapper();
            return om.readValue(jsonBuffer, clazz);
        } catch (Exception ex) {
            if (logger.isErrorEnabled()) {
                logger.error("json parse error:", ex);
            }
        }
        return null;

    }

    /**
     * 字符串轉換爲對象數組
     *
     * @param json  字符串
     * @param clazz 類類型
     * @return clazz類型的對象數組
     */
    public static <T> List<T> json2List(String json, Class<T> clazz) {
        List<T> list = null;
        try {
            ObjectMapper mapper = new ObjectMapper();
            TypeReference<List<T>> typeRef = new TypeReference<List<T>>() {
                @Override
                public Type getType() {
                    return new ParameterizedType() {
                        @Override
                        public Type[] getActualTypeArguments() {
                            return new Type[]{clazz};
                        }
                        @Override
                        public Type getRawType() {
                            return List.class;
                        }
                        @Override
                        public Type getOwnerType() {
                            return null;
                        }
                    };
                }
            };
            list = mapper.readValue(json, typeRef);
        } catch (Exception ex) {
            if (logger.isErrorEnabled()) {
                logger.error("json parse error:", ex);
            }
        }
        return list;
    }

2.自定義jackson數組

https://blog.csdn.net/weixin_35772453/article/details/69666225app

相關文章
相關標籤/搜索