我想使用 GSON* 在 JAVA中 解析此 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"]
}
}
}
但是我不知道如何加入root元素: 描述符 ,之后是 app3 元素,最后是 name 元素。
我遵循了本教程http://www.mkyong.com/java/gson-streaming-to-read-and-write-
json/
,但是它没有显示具有root和childs元素的情况。
Imo,用GSON解析JSON响应的最佳方法是创建“匹配”响应的类,然后使用Gson.fromJson()
method。
例如:
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
可以是a
String
,any
Reader
,a
JsonReader
或a
JsonElement
。
最后,如果要访问任何特定字段,只需要做:
String name = response.getDescriptor().get("app3").getName();
您总是可以按照其他答案中的建议手动解析JSON,但就我个人而言,我认为这种方法更清晰,更长期可维护,并且更适合JSON的整体思想。
我学习了这个教程http://www.mkyong.com/java/gson-streaming-to-read-and-write-json/,但它没有显示root和childs元素的情况。
问题内容: 我有一个非常简单的JSON,其中包含产品评论,例如: 我想使用GSON将其读入我的Java应用程序中。我建立了一个类来保存每个评论的结果: 要读取JSON文件,我的代码是: 使用此代码,我只能在JSON中检索第一个评论,所以我的问题是:如何遍历所有读者并获得下一个评论?我不需要将评论存储在列表中,只需要访问对象一次。任何帮助都超过了欢迎。 问题答案: 您必须获取列表中的全部数据,然后再
所以错误发生在这里: 我认为我的JSON-Data是以错误的格式提供的。
我正在使用凌空OkHttp从服务器获取一些数据。 响应是一个包含JSON的字符串,我想使用GSON/POJO解析它。 我得到错误: 预期BEGIN_OBJECT,但在第1行第1列路径$上是STRING 尝试解析时。 原因:java.lang.IllegalStateException:预期BEGIN_OBJECT但在第1行第1列路径$ com.google.gson.stream.JsonRead
我有一个非常简单的产品评论JSON,比如: 我想用GSON把它读到我的Java应用程序中。我构建了一个类来保存每次复习的结果: 使用这段代码,我只能检索JSON中的第一个评论,所以我的问题是:如何遍历所有阅读器并获得下一个评论?我不需要将评论存储在列表中,只需要访问对象一次。任何帮助都大于欢迎。