使用杰克逊从json数组中检索一个值

用户名

我正在编写代码,需要从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());
}

在这里,文本是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);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Java; JSON; 杰克逊; 从JSON数组中的列表中检索值

杰克逊-在数组中获取一个条目

基于另一个字段映射JSON字段(为一个值),使用杰克逊(这是一个键)

解析JSON使用杰克逊:我们可以在一个POJO可选变量

灿杰克逊反序列化使用它没写一个布尔JSON财产的具体subsclass?

我想使用杰克逊库将嵌套在另一个对象中的json对象映射到POJO

映射一个JSON字符串与杰克逊对象将抛出MismatchedInputException

如何序列化一个列表的内容与杰克逊平坦JSON对象?

杰克逊的平面 JSON 用于一个字段的类/记录

杰克逊在同一个POJO中映射不同的展开元素

杰克逊:如果有多个串行器,则使用哪一个?

杰克逊无法使用一个参数构造器构造实例

使用杰克逊获取JSON值的最高父键

使用杰克逊通过json文件的键选择值

杰克逊(Jackson):杰森(Json)具有到Java类的json数组,该数组具有另一个Java类的列表

使用杰克逊忽略json主体中的空元素

使用杰克逊将JSON数据映射到Java中的两个不同实体

杰克逊:忽略Json配置值

杰克逊解开数组中的对象

使用杰克逊时跳过JSON中的第一级

使用杰克逊获取空的JSON

使用杰克逊创建json对象

有关逗号杰克逊CSV解析器扼流圈分隔值的文件,如果“”是一个域,即使使用引号“

如何分析领域可能是一个字符串,并且可以与杰克逊的数组

在杰克逊中将一个字段从字符串更改为json对象

杰克逊库1.x数组,如果一个元素有时只是一个字符串

捕获和处理异常杰克逊用一个自定义消息

杰克逊解串器委托给一个适用的解串器

杰克逊-反序列化一个基本枚举