gpt4 book ai didi

java - Jackson : partial JSON parsing, 将任意值读取为字符串

转载 作者:行者123 更新时间:2023-11-30 03:22:13 25 4
gpt4 key购买 nike

我正在使用 Jackson 流 API。我想将某些值解析为 json 字符串。

比如我有

[
5,
"a",
{"c": "d"}
]

我想解析它并返回一个由 3 个字符串组成的数组,每个字符串包含一个 JSON 字符串。

["5", "\"a\"", "{\"c\": \"d\"}"]

我找到了JsonParser.readValueAsTree。我假设 TreeNode 可以转换为 json 节点的 java 字符串表示形式。我不知道这是否是正确的方法。如果是,如何将 TreeNode 转换为字符串?

最佳答案

您基本上需要一个 JSON 数组,其中包含原始 JSON 数组中值的 JSON 表示形式。

没有直接转换。 JSON 数字将被视为 Java Number (具体取决于)。 JSON 字符串将被视为 Java String。 JSON 对象将被视为 Java LinkedHashMap 或某些自定义 POJO 类型。 (JSON 数组将被视为 Collection 类型。)

但是,您可以自己进行转换。首先将 JSON 解析为 ArrayNode(包含 JsonNode 值)。然后从 ArrayNode 中提取每个值,并根据其 JSON 表示形式生成 TextNode

例如

ObjectMapper mapper = new ObjectMapper();
ArrayNode originalNode = mapper.readValue(theJson, ArrayNode.class);

ArrayNode newNode = mapper.getNodeFactory().arrayNode(); // new array
for (JsonNode value : originalNode) {
TextNode textNode = new TextNode(value.toString());
newNode.add(textNode);
}

System.out.println(newNode);

打印

["5","\"a\"","{\"c\":\"d\"}"]

关于java - Jackson : partial JSON parsing, 将任意值读取为字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31083932/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com