gpt4 book ai didi

java - 使用 GSON 解析 JSON 文件

转载 作者:IT老高 更新时间:2023-10-28 12:48:25 24 4
gpt4 key购买 nike

我想在 JAVA 中使用 GSON 解析这个 JSON 文件:

{
"descriptor" : {
"app1" : {
"name" : "mehdi",
"age" : 21,
"messages": ["msg 1","msg 2","msg 3"]
},
"app2" : {
"name" : "mkyong",
"age" : 29,
"messages": ["msg 11","msg 22","msg 33"]
},
"app3" : {
"name" : "amine",
"age" : 23,
"messages": ["msg 111","msg 222","msg 333"]
}
}
}

但我不知道如何访问根元素:descriptor,然后是 app3 元素,最后是 name 元素。

我按照本教程 http://www.mkyong.com/java/gson-streaming-to-read-and-write-json/ ,但它没有显示具有根和子元素的情况。

最佳答案

Imo,使用 GSON 解析 JSON 响应的最佳方法是创建与您的响应“匹配”的类,然后使用 Gson.fromJson()方法。
例如:

class Response {
Map<String, App> descriptor;
// standard getters & setters...
}

class App {
String name;
int age;
String[] messages;
// standard getters & setters...
}

然后只需使用:

Gson gson = new Gson();
Response response = gson.fromJson(yourJson, Response.class);

yourJson 可以是 String , 任意 Reader , 一个 JsonReaderJsonElement .

最后,如果你想访问任何特定的字段,你只需要这样做:

String name = response.getDescriptor().get("app3").getName();

您始终可以按照其他答案中的建议手动解析 JSON,但我个人认为这种方法更清晰,更易于长期维护,并且更适合 JSON 的整体理念。

关于java - 使用 GSON 解析 JSON 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16377754/

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