在RPC接口调用的时候,经常会遇到这样的问题,本身是一个JsonNode对象,但是由于对象接口的返回形式,只获取到了Map或Object等其他形式的对象,为了方便进行属性值的获取,需要进行对象的转换,可以利用import com.fasterxml.jackson.databind.JsonNode与
import com.fasterxml.jackson.databind.ObjectMapper实现:
(1)将Java对象转换为json字符串
(2)json字符串转换为JsonNode
提供一个demo:
Map<String, Object> retMap = metricService.getTree(business, id, type, isLabel);//RPC
ObjectMapper mapper = new ObjectMapper();
String json = mapper.writeValueAsString(retMap.get("data"));
JsonNode data = mapper.readTree(json);
JsonNode result = data.findValue("result");
Iterator<JsonNode> elements = result.elements();
while (elements.hasNext()){
JsonNode node = elements.next();
String label = node.findValue("label").asText();
System.out.println(label);
}