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

  • 相关阅读:
    用fmt标签对EL表达式取整
    【题解】GXOI/GZOI2019 机房游记
    【题解】【原创题目】せやな~
    【题解】折纸 origami [SCOI2007] [P4468] [Bzoj1074]
    【题解】切割多边形 [SCOI2003] [P4529] [Bzoj1091]
    【题解】【原创题目】伊卡洛斯和西瓜
    【题解】三角形 [P1222] / 三角形覆盖问题 [HNOI2012] [P3219]
    【题解】CIRU
    【题解】Railway [Uva10263]
    【学习笔记】计算几何全家桶
  • 原文地址:https://www.cnblogs.com/Gyoung/p/8651496.html
Copyright © 2011-2022 走看看