簡體   English   中英

如何使用 `com.fasterxml.jackson.core.JsonParser` 確定 json 數組的大小

[英]How to determine the size of json array using `com.fasterxml.jackson.core.JsonParser`

我正在使用公開 api 的內部庫來解析 json 值。 This api provides com.fasterxml.jackson.core.JsonParser to make use of, which is already instantiated with the appropriate json stream to be read. 現在,我如何確定數組的大小,假設 json stream 這個 JsonParser 實例正在解析的是一個數組 object。

我可以通過使用此 JsonParser 實例實例化 ObjectMapper 找到一種方法,並創建一個容器 java class ,其中包含一個列表(表示數組),最后確定大小。 我想知道是否可以只使用 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 class。

Sure, you can read JSON into JsonNode : https://fasterxml.github.io/jackson-databind/javadoc/2.8/com/fasterxml/jackson/databind/ObjectMapper.html

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

然后分析這個JsonNode 看看例子: https://www.baeldung.com/jackson-json-node-tree-model#2-handling-different-node-types

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM