Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使用Volley解析嵌套JSON对象_Android_Json_Parsing_Object - Fatal编程技术网

Android 使用Volley解析嵌套JSON对象

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(

我已经阅读了stack overflow中的大部分答案,并尝试了一些无效的答案

它是来自soapapi的响应

我试着用

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
如何迭代对象?无需迭代。它是给u
Hero
,并且
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();
}