使用 GSon 如何从 JSON 对象获取多个值

Using GSon how to get multiple vaues from JSONObject

您好,以下是我对 format

的回复
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}

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

@SerializedName("csdfgi_fgid")
public String sCdfsisdfId;

@SerializedName("feedVersion")
public Long lFesdfgedVsdfgfsersdfsion;

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

现在在数组列表中再次有一个 Json 对象 "templateCat",它有两个参数 "name , version"。现在如何从此 JSON 对象

获取值

您必须先获取 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 列表设置为您想要的实例。

首先,您需要分配您在 POJO class 中获得的所有 JSONObject。从 JSONArray(discover) 获取 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);
}