杰克逊一项解析

时间:2015-01-16 20:08:13

标签: jackson

我正在尝试解析openweathermap.org api

WeatheModel.java

public class WeatherModel {

private ListDays[] listDays;

@JsonProperty("list")
public ListDays[] getListDays() {
    return listDays;
}

这里有两个班级http://pastebin.com/vySPfRSS

Main.java

public class Main {

public static final String WEATHER = "JSON from http://api.openweathermap.org/data/2.5/forecast/daily?q=London&mode=json&units=metric&cnt=7"

public static void main(String[] args) throws IOException {
    ObjectMapper mapper = new ObjectMapper();
    mapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
    WeatherModel rootNode = mapper.readValue(WEATHER, WeatherModel.class);

如何从WeatherModel获取一个(现在是7个项目的列表)项目?

1 个答案:

答案 0 :(得分:1)

只需使用索引从数组中访问对象。

ListDays[] listDays = rootNode.getListDays();
ListDays first = listDays[0];
ListDays second = listDays[1];

数组是对象的序列,在上面的例子中,你描述了一个7 ListDays的数组。 第一个对象使用索引0,第二个对象使用索引1,依此类推。 [0]只是意味着您从数组中检索第一个对象。可以通过调用listDays.length来确定数组的长度。

要遍历所有元素,您可以使用for - 循环。

for (ListDays l : listDays) {
    // Here you have access to one ListDays-object. It is called l.
    l.doStuff...
}