如何使用`com.fasterxml.jackson.core.JsonParser`确定json数组的大小



我使用一个内部库来解析json值,该库公开了一个api。这个api提供了com.fasterxml.jackson.core.JsonParser,它已经用要读取的适当json流实例化了。现在,假设JsonParser实例正在解析的json流是一个数组对象,我该如何确定数组的大小。

我可以找到一种方法,使用这个JsonParser实例实例化ObjectMapper,并创建一个容器java类,其中包含一个列表(表示数组(,最后确定大小。我想知道是否可以只使用JsonParser而不使用ObjectMapper。

class ResultContainer {
private List<Object> result;
public List<Object> getResult() {
return result;
}
public void setResult(List<Object> result) {
this.result = result;
}
}
----
void parseEntity(JsonParser parser) {
ObjectMapper om = new ObjectMapper();
ResultContainer rc = om.readValue(parser, ResultContainer.class);
System.out.println(rc.getResult().size());
}

在上面的例子中,有没有一种方法可以让我只使用JsonParser来获得数组的大小,而不使用ObjectMapper,因此也不创建一个伪容器java类。

当然,您可以将JSON读取到JsonNode中:https://fasterxml.github.io/jackson-databind/javadoc/2.8/com/fasterxml/jackson/databind/ObjectMapper.html

JsonNode root = mapper.readTree(...);

然后对该CCD_ 3进行分析。看看例子:https://www.baeldung.com/jackson-json-node-tree-model#2-处理不同节点类型的

最新更新