将Jackson JsonNode数组转换为Java List <string>
JsonNode jsonNode = getJsonPayload();
JsonNode partial = jsonNode.path("someArrayField");
List<String> z = new ObjectMapper().readValue(partial.traverse(), new TypeReference<ArrayList<String>>(){});
将Java对象转换为Jackson中的JsonNode
可以直接将Java对象转换为JsonNode对象吗?
解决这个问题的唯一方法是将Java对象转换为String,然后转换为JsonNode:
ObjectMapper mapper = new ObjectMapper();
//第一种方法
String json = mapper.writeValueAsString(Java对象);
JsonNode jsonNode = mapper.readTree(json);
//第二种方法
JsonNode jsonNode = mapper.valueToTree(Java对象);
//第三种方法
JsonNode jsonNode = mapper.convertValue(Java对象, JsonNode.class);
将JsonNode转换为对象
ObjectMapper mapper = new ObjectMapper();
mapper.convertValue(jsonNode, MyPojo.class)