gpt4 book ai didi

java - 有随机键名时如何用JAVA解析JSON

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:22:29 24 4
gpt4 key购买 nike

当我不知道键的名称时,如何将一些 JSON 转换为 POJO?

这是我的 POJO:

public class Summoner {

private Details summonerDetails;

public Details getSummonerDetails() {
return summonerDetails;
}

public void setSummonerDetails(Details summonerDetails) {
this.summonerDetails = summonerDetails;
}

}

Details 类有 id、name 等变量 -> 这里没有问题

这是我的主类中尝试将 JSON 映射到 POJO 的行:

Summoner test = new ObjectMapper().readValue(json, Summoner.class);

这是我收到的 JSON 响应示例:

{
"randomName":{
"id":22600348,
"name":"Ateuzz",
"profileIconId":546,
"summonerLevel":30,
"revisionDate":1378316614000
}
}

如果我的 POJO Details 成员变量名称是“randomName”,上面的代码将起作用。但是当我收到与“randomName”不同的名称的响应时,它不会。如何让我的代码适用于随机名称?

我在用 jackson

很抱歉,我不能把我的问题说得更清楚一点。

最佳答案

我有解决方案,不仅使用 jackson API,还使用 ​​org.json API还。

String str = "{\"randomName\":{\"id\":22600348,\"name\":\"Ateuzz\",\"profileIconId\":546,\"summonerLevel\":30,\"revisionDate\":1378316614000}}";
JSONObject json = new JSONObject(str);
Iterator<?> keys = json.keys();
while(keys.hasNext())
{
String key = (String)keys.next();
Details test = new ObjectMapper().readValue(json.getJSONObject(key).toString(), Details.class);

}

在这里,我使用另一个 JAVA Json API 将您的字符串转换为 jsonObject,然后迭代它以获取您的第一个键值并将其映射到您的类详细信息。

我假设您的 json 格式与您在问题中提到的相同。

希望这对你有所帮助。

关于java - 有随机键名时如何用JAVA解析JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27286528/

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