Java 更快的XML:删除双引号
我有以下json:Java 更快的XML:删除双引号,java,json,jackson,Java,Json,Jackson,我有以下json: {"test":"example"} 我使用了来自QuickerXMLJackson的以下代码 JsonParser jp = factory.createParser("{\"test\":\"example\"}"); json = mapper.readTree(jp); System.out.println(json.get("test").toString()); 它输出: "example" Jackson中有删除双引号的设置吗?好吧,当您.get(“tes
{"test":"example"}
我使用了来自QuickerXMLJackson的以下代码
JsonParser jp = factory.createParser("{\"test\":\"example\"}");
json = mapper.readTree(jp);
System.out.println(json.get("test").toString());
它输出:
"example"
Jackson中有删除双引号的设置吗?好吧,当您
.get(“test”)
时获得的是一个JsonNode
,它恰好是一个TextNode
;当您.toString()
调用它时,它将返回该文本节点的字符串表示形式,这就是您获得该结果的原因
您想要的是:
.get("test").textValue();
它将返回JSON字符串本身的实际内容(所有内容都未被转换,以此类推)
请注意,如果JsonNode
不是使用非引号文本的TextNode
简单通用三元组,则返回null,否则保持节点完整
node.isTextual() ? node.asText() : node
更一般地说,JsonNode.toString()
不应用于调试或故障排除以外的任何用途:例如,它不适合序列化。相反writeValueAsString(节点)是正确的方法,使用映射器配置和可能的缩进处理所有转义/引用方面。这很有效。如果希望将节点打印为带有非引号文本的字符串,则可以使用objectMapper.writeValueAsString(节点)