有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java:删除双引号

我有以下json:

{"test":"example"}

我使用了来自更快的XML Jackson的以下代码

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

它输出:

"example"

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


共 (3) 个答案

  1. # 1 楼答案

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

    你想要的是:

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

    它将返回JSON字符串本身的实际内容(所有内容都未被替换,以此类推)

    请注意,如果JsonNode不是a TextNode,这将返回null

  2. # 2 楼答案

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

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

  3. # 3 楼答案

    简单的泛型三元组使用不带引号的文本,否则保持节点完整

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