gpt4 book ai didi

java - 如何使用 JSON 处理困难对象

转载 作者:行者123 更新时间:2023-12-02 01:29:39 24 4
gpt4 key购买 nike

我对动态 JSON 数据有疑问。我不知道如何将它放入我的JAVA类中。我需要“路线”数据。但我不知道我应该如何处理这个“”2019-05-27”:{...”。

它是 JSON 文件的一部分...

{
"2019-05-26": {
"lastUpdate": "2019-05-26 06:05:02",
"routes": [
{
"routeId": 107,
"agencyId": 18
},
{
"routeId": 222,
"agencyId": 22
}
]
},
"2019-05-27": {
"lastUpdate": "2019-05-27 06:05:02",
"routes": [
{
"routeId": 33,
"agencyId": 14
},
{
"routeId": 345,
"agencyId": 2232
}
]
}
}

下面的代码不起作用。它不是Map<String,Map<String, String>> 。我认为是-

Gson gson = new Gson();

Type mapType = new TypeToken<Map<String,Map<String, String>>>() {}.getType();
Map<String,Map<String, String>> map = null;
try {
map = gson.fromJson(new FileReader("routes.json"), mapType);
} catch (FileNotFoundException e) {
e.printStackTrace();
}

我应该怎么做才能获取这些数据?

最佳答案

创建这样的 POJO 类:

public class MyObject {
private List<Route> routes;
private String lastUpdate;

public MyObject(List<Route> routes, String lastUpdate) {
this.routes = routes;
this.lastUpdate = lastUpdate;
}

// assume getters and setters
}

public class Route {
private String routeId;
private String agencyId;

public Route(String routeId, String agencyId) {
this.routeId = routeId;
this.agencyId = agencyId;
}
// assume getters and setters
}

测试它:

public static void main(String[] args) throws IOException {
Gson gson = new Gson();

String json = Files.lines(Paths.get("src/main/resources/data.json")).collect(Collectors.joining());

Type mapType = new TypeToken<Map<String, MyObject>>() {}.getType();
Map<String, MyObject> map = gson.fromJson(json, mapType);

map.forEach((s, myObject) -> System.out.println(s + " " + myObject.getLastUpdate()));

}

输出是:

2019-05-26 2019-05-26 06:05:02
2019-05-27 2019-05-27 06:05:02

您只需创建一个以日期为键、以自定义对象为值的 map 。

关于java - 如何使用 JSON 处理困难对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56312904/

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