如何在android中使用GSON解析以下JSON? [英] How to parse following JSON using GSON in android?

查看:116
本文介绍了如何在android中使用GSON解析以下JSON?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

keysArray (A,B,C)是 dynamic cores code>具有相同的对象名称?请帮助!!!

  {

结果:成功,

keysArray:[
A,
B,
C,
D,
E


cores:{

A:[{key:value}],
B:[ {key:value}],
C:[{key:value}],
D:[{key:value}] ,
E:[{key:value}]
}
}


解决方案

我已经以这种方式实现了它。

  String responseStr = // JsonResponse here 
Type type = new TypeToken< GetMainResponse>(){} .getType();
GetMainResponse getMainResponse = new GsonBuilder()。excludeFieldsWithModifiers(Modifier.TRANSIENT).create()。fromJson(responseStr,type);

int size = getMainResponse.getKeysArray()。size();
for(int i = 0; i< size; i ++){
JSONArray jCoreIngredients = new JSONObject(responseStr)
.getJSONArray(getMainResponse.getKeysArray()。get(i));
字符串innerStr = jCoreIngredients.toString();
Type type2 = new TypeToken< ArrayList< GetMainResponse.InnerCores>>(){} .getType();
ArrayList< GetMainResponse.InnerCores> ingredientsInner = new GsonBuilder()。excludeFieldsWithModifiers(Modifier.TRANSIENT).create()。fromJson(innerStr,type2);
}

//这是我的POJO

public class GetMainResponse {
String result;
ArrayList< String> keysArray;
核心;

public String getResult(){return result; }

public void setResult(String result){this.result = result; }

public ArrayList< String> getKeysArray(){return keysArray; }

public void setKeysArray(ArrayList< String> keysArray){this.keysArray = keysArray; }

public Data getCores(){return data; }

public void setCores(Cores cores){this.cores = cores; }

public class Cores {

//这里没有声明和getter setter。

public class InnerCores {
String key;

public String getKey(){return key; }

public void setKey(String result){this.key = key; }


$ b $ / code>

任何建议: p>

As keysArray (A,B,C) are dynamic and cores having the same object names ? Please help !!!

{

 "result":"success",

 "keysArray":[
     "A",
     "B",
     "C",
     "D",
     "E"
     ],

 "cores":{

    "A":[{"key":"value"}],
    "B":[{"key":"value"}],
    "C":[{"key":"value"}],
    "D":[{"key":"value"}],
    "E":[{"key":"value"}]
 }
}

解决方案

I have achieved it in this way.

String responseStr = //JsonResponse here
Type type = new TypeToken<GetMainResponse>() {}.getType();
GetMainResponse getMainResponse = new GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create().fromJson(responseStr, type);

    int size = getMainResponse.getKeysArray().size();
    for (int i = 0; i < size; i++) {
        JSONArray jCoreIngredients = new JSONObject(responseStr)
                                            .getJSONArray(getMainResponse.getKeysArray().get(i));
        String innerStr = jCoreIngredients.toString();
        Type type2 = new TypeToken<ArrayList<GetMainResponse.InnerCores>>() {}.getType();
        ArrayList<GetMainResponse.InnerCores> ingredientsInner = new GsonBuilder().excludeFieldsWithModifiers(Modifier.TRANSIENT).create().fromJson(innerStr, type2);
    }

//And this is my POJO

public class GetMainResponse{
String result;
ArrayList<String> keysArray;
Cores cores;

public String getResult() { return result; }

public void setResult(String result) { this.result = result; }

public ArrayList<String> getKeysArray() { return keysArray; }

public void setKeysArray(ArrayList<String> keysArray) { this.keysArray = keysArray; }

public Data getCores() { return data; }

public void setCores(Cores cores) { this.cores = cores; }

public class Cores {

// No declaration and not getter setter here.

 public class InnerCores {
    String key;

    public String getKey() { return key; }

    public void setKey(String result) { this.key = key; }

 }
}

Any suggestions :)

这篇关于如何在android中使用GSON解析以下JSON?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆