从JSON文件的pojo类中获取数据

时间:2015-06-16 21:57:46

标签: java jackson

我在src/main/resources/routes.txt的Jersey项目中将以下JSON数组作为文件。我想将它转换为Java对象,以便在mon-fri or sat or sun的情况下获得时间。我在this链接的帮助下生成了以下课程。如何从这个生成的结构中获取ArrivalTime类的时间?我应该将所有这些生成的类作为根类的内部类还是单独放置?

我感谢任何帮助。

JSON简单:

[{
   "route": 1,
   "info": {
              "stops": {
                          "arrival_time": {"mon-fri": ["04:24","05:10","05:40"],
                                       "sat": ["05:34","05:55","06:15"],
                                       "sun": ["07:00","08:00","05:40"]

                                       },
                          "stops_name": "Tension Way"
                        },
              "direction": "Surrey Quays"
           }
}]

生成的课程:

 public class Root {

    private Integer route;
    private Info info;

    }

    public class Info {

    private Stops stops;
    private String direction;   
    }

    public class Stops {

    private ArrivalTime arrivalTime;
    private String stopsName;  
    }

    public class ArrivalTime {

    private List<String> monFri = new ArrayList<String>();

    private List<String> sat = new ArrayList<String>();

    private List<String> sun = new ArrayList<String>();

    }

代码:

    ObjectMapper mapper = new ObjectMapper();
    FileReader fileReader;
    try {
        fileReader = new FileReader("src/main/resources");
        try {
            Root readValue = mapper.readValue(fileReader, Root.class);
            readValue.getInfo();
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

1 个答案:

答案 0 :(得分:1)

List<String> monFri = readValue().getInfo().getStops().getArrivalTime().getMonFri();

这是JSON对象的结构,也是映射到JSON的Java对象的结构。

这些类应该是顶级类,或静态嵌套类,而不是内部类。