更快的 XML 杰克逊:删除双引号

2022-08-31 20:31:05

我有以下json:

{"test":"example"}

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

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

它输出:

"example"

杰克逊是否有删除双引号的设置?


答案 1

好吧,当你是一个,它恰好是一个;当你它时,它将返回该的字符串表示形式,这就是你获得该结果的原因。.get("test")JsonNodeTextNode.toString()TextNode

您需要的是:

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

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

请注意,如果不是 ,则返回 null。JsonNodeTextNode


答案 2

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

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