gpt4 book ai didi

java - 使用 jackson 从 json 数组中检索值

转载 作者:塔克拉玛干 更新时间:2023-11-01 23:05:38 24 4
gpt4 key购买 nike

我正在编写代码,需要从 json 数组中获取特定的。我的 json 如下:

{
"coord": {
"lon": 68.37,
"lat": 25.39
},
"weather": [{
"id": 800,
"main": "Clear",
"description": "clear sky",
"icon": "01d"
}],
"base": "stations",
"main": {
"temp": 302.645,
"pressure": 1023.33,
"humidity": 48,
"temp_min": 302.645,
"temp_max": 302.645,
"sea_level": 1025.53,
"grnd_level": 1023.33
},
"wind": {
"speed": 1.81,
"deg": 54.0002
},
"clouds": {
"all": 0
},
"dt": 1479887201,
"sys": {
"message": 0.0023,
"country": "PK",
"sunrise": 1479865789,
"sunset": 1479904567
},
"id": 1176734,
"name": "Hyderabad",
"cod": 200
}

我想从天气 数组中获取id。如果有很多,我想获取第一个项目的 ID。

请让我知道我该怎么做。

我用来获取天气数组的代码是:

text = builder.toString();
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(text, new TypeReference<Map<String, Object>>() {
});

List mainMap2 = (List) map.get("weather");
for (Object item : mainMap2) {
System.out.println("itemResult" + item.toString());
}

这里,text 是 json 字符串。

最佳答案

下一行应该可以解决问题

int id = (int)((Map)mainMap2.get(0)).get("id");

您的代码可以修改如下:

text = builder.toString();
ObjectMapper mapper = new ObjectMapper();
Map<String, Object> map = mapper.readValue(text, new TypeReference<Map<String, Object>>() {
});

List mainMap2 = (List) map.get("weather");
//for (Object item : mainMap2) {
// System.out.println("itemResult" + item.toString());
//}
int id = (int)((Map)mainMap2.get(0)).get("id");
System.out.println(id);

关于java - 使用 jackson 从 json 数组中检索值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40759128/

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