问题:当使用下方代码,获取JsonNode对象的时候,从该对象中通过键获取的值会自动带上双引号。
JsonNode jsonNode = new ObjectMapper().readTree("JSON字符串");
注意:以上方法是获得的JsonNode对象,不是JSONObject对象。
解决办法:不使用这种方法,还是使用fastJSON2
的方法
问题演示:
代码如下:
@Test
public void t1() throws JsonProcessingException {
String str = "{\"searchField\":\"orgId\",\"where\":\"nginx.状态码 = '304'\"}";
JsonNode jsonNode = new ObjectMapper().readTree(str);
System.out.println(jsonNode);
System.out.println(jsonNode.get("searchField").toString());
System.out.println(jsonNode.get("where").toString());
JSONObject json = JSON.parseObject(str);
System.out.println(json);
System.out.println(json.get("searchField"));
System.out.println(json.get("where"));
}
结果: