反序列化后无法保留java对象中的反斜杠
我有以下 json
{\"Num\":\"44566\677\"}
”
当我将其反序列化为对象时
我失去了反斜杠
预计:6787�33 实际:678732433
这是我尝试过的
String json = "{\"num\":\"6787\32432"}";
Objectmapper obj = new Objectmapper();
obj.enable(ALLOW_BACKSLASH_ESCAPING_ANY_CAHATCTER);
obj.readvalue(json, new Typereferenxe<Map<String,String>>(){}));
反斜杠本身应该被转义,因此尝试在 Json 中添加另一个反斜杠 - 将
{\"Num\":\"44566\677\"}
更改为 {\"Num\":\"44566\\677\"}
另外,如果您有兴趣,可以使用一个简单的
JsonUtils
类来序列化和反序列化 POJO 之间的简单 JSON。 JsonUtils 是 ObjectMapper
类的薄包装。你的代码将成为一行:
Map<String, Object> map = JsonUtils.readObjectFromJsonString(json, Map.class);`
JsonUtils
类附带由我编写和维护的开源 MjgntUtils java 库。这是JsonUtils Javadoc。您可以通过 maven 工件 或从 Github 获取该库 - 包含源代码和 Javadoc