更快 XML Jackson:删除双引号

Faster XML Jackson: Remove double quotes

我有以下 json:

{"test":"example"}

我使用 Faster XML Jackson 的以下代码。

JsonParser jp = factory.createParser("{\"test\":\"example\"}");
json = mapper.readTree(jp);
System.out.println(json.get("test").toString());

它输出:

"example"

Jackson 中是否有删除双引号的设置?

好吧,当你 .get("test") 时得到的是一个 JsonNode 而它恰好是一个 TextNode;当你 .toString() 它时,它将 return 那个 TextNode 的字符串表示,这就是你获得那个结果的原因。

你想要的是:

.get("test").textValue();

这将 return JSON 字符串本身的实际内容(所有内容都未转义等等)。

请注意,如果 JsonNode 不是 一个 TextNode

,这将 return 为 null

使用非引号文本的简单泛型三元,否则保持节点不变。

node.isTextual() ? node.asText() : node

jsonValue.get("value").isString().stringValue()

在调用单行方法之前还要检查 null