使用GSon嵌套Json解析

Dro*_*eer 1 parsing android json list gson

如何使用谷歌Gson在Json Response下解析.?

{
   "rootobject":[
      {
         "id":"7",
         "name":"PP-1",
         "subtitle":"name-I",
         "key1":"punjab",
         "key12":"2013",
         "location":"",
         "key13":"0",
         "key14":"0",
         "key15":"0",
         "result_status":null
      },
      {
         "id":"7",
         "name":"PP-1",
         "subtitle":"name-I",
         "key1":"punjab",
         "key12":"2013",
         "location":"",
         "key13":"0",
         "key14":"0",
         "key15":"0",
         "result_status":null
      },
      {
         "id":"7",
         "name":"PP-1",
         "subtitle":"name-I",
         "key1":"punjab",
         "key12":"2013",
         "location":"",
         "key13":"0",
         "key14":"0",
         "key15":"0",
         "result_status":null
      },
      {
         "id":"7",
         "name":"PP-1",
         "subtitle":"name-I",
         "key1":"punjab",
         "key12":"2013",
         "location":"",
         "key13":"0",
         "key14":"0",
         "key15":"0",
         "result_status":null
      }
   ]
}
Run Code Online (Sandbox Code Playgroud)

Mik*_*ikO 5

我创建了对象来"包装"响应,例如:

public class Response {

  @SerializedName("root_object")
  private List<YourObject> rootObject;

  //getter and setter
}


public class YourObject {

  @SerializedName("id")
  private String id;
  @SerializedName("name")
  private String name;
  @SerializedName("subtitle")
  private String subtitle;
  //... other fields

  //getters and setters
}
Run Code Online (Sandbox Code Playgroud)

注意:使用@SerializedName注释来跟踪Java属性中的命名约定,同时匹配JSON数据中的名称.

然后你只需用你的Reponse对象解析JSON ,如下所示:

String jsonString = "your json data...";
Gson gson = new Gson();
Response response = gson.fromJson(jsonString, Response.class);
Run Code Online (Sandbox Code Playgroud)

现在,您可以Response使用getter和setter 访问对象中的所有数据.

注意:您的Response对象可能用于解析不同的JSON响应.例如,您可以拥有不包含idsubtitle字段的JSON响应,但您的Reponse对象也将解析响应,并null在此字段中放置一个.这样,您只能使用一个Response类来解析所有可能的响应......

编辑:我没有意识到Android标签,我在通常的Java程序中使用这种方法,我不确定它是否对Android有效...