使用GSon如何从JSONObject

时间:2015-06-12 11:33:39

标签: android json gson

嗨,以下是格式

的回复
object {6}
  csdfgi_fgid   :   4casdff9743a1-3f9asdf2-4
  fesdfgedVsdfgersionsfdg   :   7
  sdfg  :   28
  feesdfgdStart :   0
  fesdfedCsdfgoudfsgnt  :   28
  discover[28]
   0{4}
    DiscCat :   Tip
    templateCat{2}
        name    :   tip.tp
        version :   2
    timestamp   :   1421146871251
    content{1}

我在类中使用Serializable获取这些值,如下所示

@SerializedName("csdfgi_fgid")
public String sCdfsisdfId;

@SerializedName("feedVersion")
public Long lFesdfgedVsdfgfsersdfsion;

@SerializedName("feed")
public ArrayList<DiscoverModel> discover;

现在再次在数组列表中有一个Json对象&#34; templateCat&#34;它有两个参数&#34; name,version&#34;。现在如何从这个JSON对象中获取值

2 个答案:

答案 0 :(得分:1)

首先,您需要分配您在POJO类中获得的所有JSONObject。之后从JSONArray(发现)获取JSONObject(templateCat),你必须进行循环。例如:

for(int i=0;i<discover.size();i++){

   TemplateCat templateCat = discover.get(i).getTemplateCat();
   String strName = templateCat.getName();
   String strVersion = templateCat.getVersion();

  //If you want to get all name and version as list. Add strName and strVersion to ArrayList. <br>

    For Example :  nameArray.add(strName);
                   versionArray.add(strVersion);
}

答案 1 :(得分:0)

您必须首先获取该JSON数组,通过它进行迭代,然后使用Gson将其转换为您想要的对象。

JSONObject rootJson = /* Get your JSON object here */;
JSONArray nestedArray = rootJson.getJsonArray("your_nested_json_array_name");

List<YourObject> objects;
for(int i = 0; i < nestedArray.size(); i++) {
    String objectJsonString = nestedArray.get(i);
    YourObject o = new Gson().fromJson(objectJsonString, YourObject.class);

    objects.add(o);
}

..您需要做的最后一件事就是将我们的objects列表设置为您想要的实例。