Android 使用Volley解析嵌套JSON对象
我已经阅读了stack overflow中的大部分答案,并尝试了一些无效的答案 它是来自soapapi的响应 我试着用Android 使用Volley解析嵌套JSON对象,android,json,parsing,object,Android,Json,Parsing,Object,我已经阅读了stack overflow中的大部分答案,并尝试了一些无效的答案 它是来自soapapi的响应 我试着用 JSONObject obj = new JSONObject(response); JSONArray heroArray = new JSONArray(); JSONObject one = obj.getJSONObject("getProjectDetailsResult"); JSONObject two = one.getJSONObject(
JSONObject obj = new JSONObject(response);
JSONArray heroArray = new JSONArray();
JSONObject one = obj.getJSONObject("getProjectDetailsResult");
JSONObject two = one.getJSONObject("NewDataSet");
heroArray= two.getJSONArray("Rec");
for (int i = 0; i < heroArray.length(); i++) {
JSONObject heroObject = heroArray.getJSONObject(i);
Hero hero = new Hero(heroObject.getString("decProjectID"),
heroObject.getString("chvProjectNameEng"));
我试过了
JSONObject heroArray = new JSONObject();
JSONObject one = obj.getJSONObject("getProjectDetailsResult");
JSONObject two = one.getJSONObject("NewDataSet");
heroArray= two.getJSONObject("Rec");
但我得到的其余代码的错误。我正在用来自
Rec
的样本测试这一点,它不是JSONArray
,而是JSONObject
。试用
try {
JSONObject obj = new JSONObject(response);
JSONObject one = obj.getJSONObject("getProjectDetailsResult");
JSONObject two = one.getJSONObject("NewDataSet");
if(two.get("Rec") instanceof JSONArray) {
JSONArray heroArray = two.getJSONArray("Rec");
for (int i = 0; i < heroArray.length(); i++) {
JSONObject heroObject = heroArray.getJSONObject(i);
Hero hero = new Hero(heroObject.getString("decProjectID"),
heroObject.getString("intProjectSlNo"),
heroObject.getString("chvProjectName"),
heroObject.getString("chvProjectNameEng"),
heroObject.getString("chrProjCatCode"),
heroObject.getString("chvEngProjCategory"),
heroObject.getString("nchvSecType"),
heroObject.getString("chvEngSecType"),
heroObject.getString("chvImplOfficerDesg"),
heroObject.getString("chvImplOfficerDesgEng"),
heroObject.getString("singleYrAmt"),
heroObject.getString("TotExp"),
heroObject.getString("percentage"));
heroList.add(hero);
}
} else {
JSONObject heroObject = two.getJSONObject("Rec");
Hero hero = new Hero(heroObject.getString("decProjectID"),
heroObject.getString("intProjectSlNo"),
heroObject.getString("chvProjectName"),
heroObject.getString("chvProjectNameEng"),
heroObject.getString("chrProjCatCode"),
heroObject.getString("chvEngProjCategory"),
heroObject.getString("nchvSecType"),
heroObject.getString("chvEngSecType"),
heroObject.getString("chvImplOfficerDesg"),
heroObject.getString("chvImplOfficerDesgEng"),
heroObject.getString("singleYrAmt"),
heroObject.getString("TotExp"),
heroObject.getString("percentage"));
heroList.add(hero);
}
} catch ( Exception ex) {
ex.printStackTrace();
}
试试看{
JSONObject obj=新的JSONObject(响应);
JSONObject one=obj.getJSONObject(“getProjectDetailsResult”);
JSONObject two=1.getJSONObject(“NewDataSet”);
if(JSONArray的两个.get(“Rec”)实例){
JSONArray heroArray=two.getJSONArray(“Rec”);
for(int i=0;i
如何迭代对象?无需迭代。它是给uHero
,并且Rec
中的属性不同。因此,您必须更新您的Hero
模型。你能发布你的Hero
模型吗?@JayanDev,你知道了吗?我试着用迭代器来做
try {
JSONObject obj = new JSONObject(response);
JSONObject one = obj.getJSONObject("getProjectDetailsResult");
JSONObject two = one.getJSONObject("NewDataSet");
if(two.get("Rec") instanceof JSONArray) {
JSONArray heroArray = two.getJSONArray("Rec");
for (int i = 0; i < heroArray.length(); i++) {
JSONObject heroObject = heroArray.getJSONObject(i);
Hero hero = new Hero(heroObject.getString("decProjectID"),
heroObject.getString("intProjectSlNo"),
heroObject.getString("chvProjectName"),
heroObject.getString("chvProjectNameEng"),
heroObject.getString("chrProjCatCode"),
heroObject.getString("chvEngProjCategory"),
heroObject.getString("nchvSecType"),
heroObject.getString("chvEngSecType"),
heroObject.getString("chvImplOfficerDesg"),
heroObject.getString("chvImplOfficerDesgEng"),
heroObject.getString("singleYrAmt"),
heroObject.getString("TotExp"),
heroObject.getString("percentage"));
heroList.add(hero);
}
} else {
JSONObject heroObject = two.getJSONObject("Rec");
Hero hero = new Hero(heroObject.getString("decProjectID"),
heroObject.getString("intProjectSlNo"),
heroObject.getString("chvProjectName"),
heroObject.getString("chvProjectNameEng"),
heroObject.getString("chrProjCatCode"),
heroObject.getString("chvEngProjCategory"),
heroObject.getString("nchvSecType"),
heroObject.getString("chvEngSecType"),
heroObject.getString("chvImplOfficerDesg"),
heroObject.getString("chvImplOfficerDesgEng"),
heroObject.getString("singleYrAmt"),
heroObject.getString("TotExp"),
heroObject.getString("percentage"));
heroList.add(hero);
}
} catch ( Exception ex) {
ex.printStackTrace();
}