为什么JSON字符串当中会出现反斜杠?
2021-03-26 本文已影响0人
我犟不过你
相信很多小伙伴在使用json的过程中,会发现有时候json中会出现反斜杠,是不是很奇怪这个问题?
我使用的fastjson。
通过下面的小例子来看下:
public static void main(String[] args) {
Map<String,Object> map = new HashMap<>();
map.put("personalService","个人");
map.put("userGroupService","用户组");
map.put("territoryService","地域");
map.put("organizationService","组织机构");
System.out.println(JSONObject.toJSONString(map));
System.out.println(JSONObject.toJSONString(JSONObject.toJSONString(map)));
}
执行结果:
{"personalService":"个人","territoryService":"地域","organizationService":"组织机构","userGroupService":"用户组"}
"{\"personalService\":\"个人\",\"territoryService\":\"地域\",\"organizationService\":\"组织机构\",\"userGroupService\":\"用户组\"}"
分析:
1)首先我们组装一个map
2)将map进行序列化进行输出,发现没有问题
3)将map进行序列化,再次进行序列化,发现反斜杠出现了
总结:
其实就是我们对map或者对象进行了两次的序列化。说白了就是进行了两次的toJSONString。