如何在android中使用GSON解析以下JSON? [英] How to parse following JSON using GSON in android?
本文介绍了如何在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屋!
查看全文