结论:不要对一个json数据或包含json数据的容器(集合,对象)使用转jsonString方法
测试
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("id", "12");
map.put("name", "李白");
map.put("age", "12");
String firstToJsonString = JSONObject.toJSONString(map);
String secondToJsonString = JSONObject.toJSONString(firstToJsonString);
System.out.println("第一次toJSONString" + firstToJsonString);
System.out.println("第二次toJSONString" + secondToJsonString);
}
可以看到第二次转jsonString时多了斜杠和双引号,当把第二次jsonString转换为java对象时就会报错
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("id", "12");
map.put("name", "李白");
map.put("age", "12");
String firstToJsonString = JSONObject.toJSONString(map);
String secondToJsonString = JSONObject.toJSONString(firstToJsonString);
System.out.println("第一次toJSONString" + firstToJsonString);
System.out.println("第二次toJSONString" + secondToJsonString);
Map firstMap = JSONObject.parseObject(firstToJsonString, Map.class);
System.out.println("firstMap = " + firstMap);
Map secondMap = JSONObject.parseObject(secondToJsonString, Map.class);
}
第二次解析报错
结论:不要对一个json字符串或包含json字符串的容器(集合,对象)再次使用jsonString方法,会导致后续解析成java对象出错