小编典典

使用GSON解析JSON文件

json

我想使用 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元素的情况。


阅读 300

收藏
2020-07-27

共1个答案

小编典典

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的整体思想。

2020-07-27