jackson将json数组转换为List的两种方式

您所在的位置:网站首页 jsonString转成list集合 jackson将json数组转换为List的两种方式

jackson将json数组转换为List的两种方式

2023-08-23 06:49| 来源: 网络整理| 查看: 265

今天提供接口,发现协议设定上有需要将json数组转换为List的设计!避免大家踩坑,故总结一下两种方式!

json数组大概为这种格式:

jsonString=[{"id": "123","name": "李四",}, {"id": "6666","name": "李五",}] 一、介绍

两种方式都是依赖的ObjectMapper类!

ObjectMapper类是Jackson库的主要类。它提供一些功能将转换成Java对象匹配JSON结构,反之亦然。它使用JsonParser和JsonGenerator的实例实现JSON实际的读/写。

第一种方式: public void testConvert() { final ObjectMapper mapper = new ObjectMapper(); jsonString=[{"id": "123","name": "李四",}, {"id": "6666","name": "李五",}]; JavaType collectionType = getCollectionType(mapper, List.class, DtoBean.class); List lst = (List)mapper.readValue(jsonString, collectionType); } /** * 获取泛型的Collection Type * @param collectionClass 泛型的Collection * @param elementClasses 实体bean * @return JavaType Java类型 */ public static JavaType getCollectionType(ObjectMapper mapper,Class collectionClass, Class... elementClasses) { return mapper.getTypeFactory().constructParametricType(collectionClass, elementClasses); }

但是这种方式的 constructParametricType()方法为过时方法,所以不建议再继续使用!

第二种方式: public void testConvert() { final ObjectMapper mapper = new ObjectMapper(); jsonString=[{"id": "123","name": "李四",}, {"id": "6666","name": "李五",}]; List listll = mapper.readValue(jsonString, new TypeReference(){}); }

第二种方式不仅未过时,而且使用起来较简洁!



【本文地址】


今日新闻

推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3