如何使用 GSON streaming 解析具有多个顶级对象的 JSON?

问题描述 投票:0回答:0

我一直在寻找示例 Gson 流式 API 代码,我看到了很多这种风格:

       reader.beginObject();
       while (reader.hasNext()) {

          switch(reader.peek()) {
             case NAME:
                ...
             case BEGIN_ARRAY:
                ...
             case END_ARRAY:
                ...

                }

       reader.endObject();
       reader.close();

当 JSON 只有一个“顶级”对象时,该代码非常有效。 hasNext() 循环在第一个对象结束时终止。我需要的是一个循环来处理所有对象。这是我的 JSON 的缩写示例:

{
  "meta": {
    "disclaimer": "Loren Ipsum",
    "terms": "https://myURL/terms/",
    "license": "https://myURL/license/",
    "last_updated": "2023-03-10",
    "totals": {
      "skip": 0,
      "limit": 12000,
      "total": 362818
    }
  },
  "results": [
    {"result": "value1"},
    {"result": "value2"},
    {"result": "value3"},
  ]
}

这段代码很好地处理了“元”对象,永远不会到达“结果”数组。

高低搜索。

gson streaming jsonreader
© www.soinside.com 2019 - 2024. All rights reserved.