gpt4 book ai didi

json - jackson 数组节点

转载 作者:行者123 更新时间:2023-12-04 03:08:20 32 4
gpt4 key购买 nike

我有一个包含数组的输入 json 对象,如下所示:

[{"key11":"value11","key12":"value12"},
{"key21":"value21","key22":"value22"},
...
{"keyn1":"valuen1","keyn2":"valuen2"}]

我想使用 jackson 解析器,首先,确定行数,其次,仅在屏幕上打印值。我希望它尽可能轻巧。谁能给我指明方向?

最佳答案

假设 rowArrayNode 中的条目之一,以下简单方法可能会有用。它使用 JsonNode 抽象而不是我个人更喜欢的一系列嵌套的 Map 对象,因为 JsonNode 提供了一系列有用的实用方法处理这类数据(结构可能未知或非常动态的数据,因此无法轻松转换为 POJO)。

下面的测试用例说明了如何查找行数以及如何打印值。为了获取值,使用了方法 JsonNode.elements(),行数只是对 size() 方法的调用。

public class ArrayNodeTest {
@Test
public void verifySizeAndPrintRows() throws IOException {
final String jsonStr =
"[{\"key11\":\"value11\",\"key12\":\"value12\"},\n" +
"{\"key21\":\"value21\",\"key22\":\"value22\"},\n" +
"{\"keyn1\":\"valuen1\",\"keyn2\":\"valuen2\"}]";

final ObjectMapper mapper = new ObjectMapper();
final JsonNode jsonNode = mapper.readTree(jsonStr);

// Verify size
Assert.assertEquals(3, jsonNode.size());

// And print rows
for (final JsonNode row : jsonNode) {
final Iterable<JsonNode> iterable = () -> row.elements();
iterable.forEach(elem -> System.out.println(elem.asText()));
}
}
}

关于json - jackson 数组节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8176833/

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