使用JSONArray解析JSONObject

时间:2014-08-21 13:26:28

标签: android json parsing arrays jsonobject

请帮我解析一下这个JSON。我试图获得JSONObject'首先,然后.getJSONArray (MainArray)MainArray我试图获得secondaryArray,但无济于事。

{
"MainArray": [
    {
        "id":"someID",
        "secondaryArray": [
              {
                  "id":"someID"
              },
              {
                  "id":"someID"
              }
        ]
    }
]

}

我需要访问secondaryArray个对象,但我是android的新手,我在这个层次结构中感到困惑。

4 个答案:

答案 0 :(得分:3)

你可以这样做:

JsonArray jsSecondArray = firstJsObj.getJsonArray("MainArray").getJsonObject(0).getJsonArray("secondaryArray");

答案 1 :(得分:1)

JSONObject jsonObject = new JSONObject(<JSON>);
JSINArray secondaryArray;
JSONArray mainArray = jsonObject.getJSONArray("MainArray");
for (int i = 0; i < mainArray.length(); i++) {
    JSONObject obj = intertopSheuleItemsArray.getJSONObject(i);
    secondaryArray= obj.getJSONArray("secondaryArray");
    if (secondaryArray!= null)
        break;
}

然后使用secondaryArray's个对象。

答案 2 :(得分:0)

你也可以这样做。

public static final String TAG_MAINARRAY="MainArray";
    public static final String TAG_SECONDARYARRAY="secondaryArray";
    public static final String TAG_ID="id";
    public static final String TAG_MAINARRAY_OBJ_ID="id";



        try {
JSONObject json =new JSONObject(<response_String>)
            JSONArray MainArray = json.getJSONArray(TAG_MAINARRAY);
            for(int MainArray_i = 0; MainArray_i < MainArray.length(); MainArray_i++){
                    JSONObject MainArray_obj=MainArray.getJSONObject(MainArray_i);
                JSONArray secondaryArray = MainArray_obj.getJSONArray(TAG_SECONDARYARRAY);
                for(int secondaryArray_i = 0; secondaryArray_i < secondaryArray.length(); secondaryArray_i++){
                        JSONObject secondaryArray_obj=secondaryArray.getJSONObject(secondaryArray_i);
                    String str_id = secondaryArray_obj.getString(TAG_ID);

                    }
                String str_MainArray_obj_id = MainArray_obj.getString(TAG_MAINARRAY_OBJ_ID);

                }
        } catch (JSONException e){
        }

答案 3 :(得分:0)

试试这个:

JSONObject jsonObj = new JSONObject(yourJson);
JSONArray mainArray = jsonObj.getJSONArray("MainArray");
for (int i = 0; i < mainArray.lenght(); i++){
    JSONObject obj = mainArray[i].getJSONObject();
    String id = obj.getString("id");
    JSONArray secondaryArray = obj.getJSONArray("secondaryArray");
    for (int j = 0; j < secondaryArray.lenght(); j++){
        JSONObject innerObj = secondaryArray[j].getJSONObject();
        String innerId = innerObj.getString("id");
    }
}