【发布时间】:2019-02-22 23:29:18
【问题描述】:
这是我尝试将对象转换为 json 字符串的方式
ObjectNode batch = OBJECT_MAPPER.createObjectNode();
String s = OBJECT_MAPPER.writeValueAsString((triggerCommands.getCommands()));
batch.put("commands", s);
System.out.println("raw String= " + s);
System.out.println("ObjectNode String = " + batch);
这导致输出;
raw String= [{"cmdid":"a06c00d4-5b8b-4313-a8f3-5663dde0fa5b","type":"test"}]
ObjectNode String = {"commands":"[{\"cmdid\":\"a06c00d4-5b8b-4313-a8f3-5663dde0fa5b\",\"type\":\"test\"}]"}
我很想知道为什么当我将字符串作为 ObjectNode 的值添加时会出现反斜杠。我想要的只是
ObjectNode String = {"commands":[{"cmdid":"a06c00d4-5b8b-4313-a8f3-5663dde0fa5b","type":"test"}]}
here 提出了类似的问题,但没有可靠的答案。
【问题讨论】:
-
因为在 JSON 字符串中,必须对双引号进行转义。您希望 commands 属性的值是 JSON 数组,而不是字符串。
标签: java string object jackson jackson2