zoukankan      html  css  js  c++  java
  • jackson 用法总结

    1.序列化与反序列化封装

     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/69666225

  • 相关阅读:
    14.3 Go iris
    14.2 Go性能优化
    14.1 Go数据结构
    13.3 Go章节练习题
    13.2 Go练习题答案
    13.1 Go练习题
    12.1 Go nsq
    11.3 Go 开发博客
    11.2Go gin
    11.1 Go Http
  • 原文地址:https://www.cnblogs.com/Gyoung/p/8651496.html
Copyright © 2011-2022 走看看