要解析的JSON(数组)电文:
[{"name":"Parse list json test"}
解析代码
ObjectMapper mapper = new ObjectMapper();
mapper.findAndRegisterModules();
// 第一种,直接读取字符串
JsonNode jsonNode = mapper.readTree(forObject);
for(int i=0; i<jsonNode.size(); i++){
String name = jsonNode.get(i).findPath("name").asText();
System.out.println("====name:"+name);
}
// 第二种,读取为对象数组
JavaType javaType = mapper.getTypeFactory().constructParametricType(ArrayList.class, ItemRecord.class);
List<ItemRecord> itemList = mapper.readValue(forObject, javaType);
for (int i = 0; i < itemList.size(); i++) {
System.out.println("====name:"+itemList.get(i).getName());
}
问题1:默认不支持java.time.LocalDate数据类型的解析
异常信息:Java 8 date/time type
java.time.LocalDate
not supported by default: add Module "com.fasterxml.jackson.datatype:jackson-datatype-jsr310" to enable handling
解决:
添加依赖:<dependency> <groupId>com.fasterxml.jackson.datatype</groupId> <artifactId>jackson-datatype-jsr310</artifactId> </dependency>
加载jackson-datatype-jsr31模块:
mapper.findAndRegisterModules();
网友评论