首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将字段随参数变化的Json转换为Gson?

如何将字段随参数变化的Json转换为Gson?
EN

Stack Overflow用户
提问于 2019-07-12 06:24:54
回答 1查看 37关注 0票数 1

我正在使用改进,并尝试将动态Json转换为Gson,但是如果我有参数1,2,则Json的字段会根据parameters.For示例而变化

JSON格式:

代码语言:javascript
运行
复制
{  
   "data":{  
  "1":{  
     "urls":{  
        "website":[  
           "https://bitcoin.org/"
        ],
        "source_code":[  
           "https://github.com/bitcoin/"
        ]
     },
     "logo":"https://s2.coinmarketcap.com/static/img/coins/64x64/1.png"
     ... 

  },
  "2":{  
     "urls":{  
        "website":[  
           "https://litecoin.org/"
        ],
        "source_code":[  
           "https://github.com/litecoin-project/litecoin"
        ]
     },
     "logo":"https://s2.coinmarketcap.com/static/img/coins/64x64/2.png"
     ...
      }
   }
}

请注意,可以有任意数量的参数。

EN

回答 1

Stack Overflow用户

发布于 2019-07-12 07:33:25

如果可能,您可以将“data”类型设置为一个数组,而不是将其设置为一个对象:

代码语言:javascript
运行
复制
{
  "data": [
    {
      ...
    },
    {
      ...
    }
  ]
}

现在,当你处理你的'data‘元素时,你可以很容易地检查它的长度,看看有多少。假设您已经解析了Json并可以访问“data”,那么用于处理这些数据的Java代码将如下所示:

代码语言:javascript
运行
复制
JsonArray array = dataElement.getAsJsonArray();
for(JsonElement element : array){
    JsonObject object = element.getAsJsonObject();
    String logo = object.getAsJsonPrimitive("logo").getAsString();
    ...
}

如果这是不可能的,那么你必须这样做:

代码语言:javascript
运行
复制
JsonObject dataObject = ...
int i = 1;
while(true){
    JsonElement element = dataObject.get("" + i);
    if(!element.isJsonObject()){
        break;
    }
    JsonObject object = element.getAsJsonObject();
    // do stuff with object
    i++;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56998039

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档