-1

以下は、「id」を取得した場合に JSON を解析するコードです。ID を指定しないと、JSON 配列は表示されません。IDなしでJSONを表示するにはどうすればよいですか?

JSONファイルでIDを指定しないと、「ID」なしでJSONArrayを解析するにはどうすればよいですか?配列は、JSONファイルで「ID」を指定する必要があることを示しませんか???

このjson配列は表示されません

 {
"status": 1,
"data": [
    {
        "title": "Elementary"
    },
    {
        "title": "Middle"
    },
    {
        "title": "High"
    },
    {
        "title": "Atypical"
    }
]
}

このjson配列が表示されます

{
"status": 1,
"data": [
    {
        "id": "1",
        "title": "Elementary"
    },
    {
        "id": "2",
        "title": "Middle"
    },
    {
        "id": "3",
        "title": "High"
    },
    {
        "id": "4",
        "title": "Atypical"
    }
]
}

コード:

        JSONObject json2 = new JSONObject(str);

        status = json2.getString("status");
        if (status.equals("1")) {
        JSONArray school = json2.getJSONArray("data");
        for (int i = 0; i < school.length(); i++) {
            JSONObject object = school.getJSONObject(i);


                     //  Category_ID.add(Long.parseLong(object.getString("id")));
            Category_name.add(object.getString("title"));

        }
4

3 に答える 3

0

json の解析中にこのコードを試してください。

if(object.has("id"))
{
Category_ID.add(Long.parseLong(object.getString("id")));
}
else
{
// add default id
}


これがうまくいくことを願っています。

于 2013-08-20T12:54:27.100 に答える
0

コードを両方の JSON サンプルで機能させたいと思います。

「id」が存在するかどうかを確認し、それに応じて解析できます。

以下のコードを使用して、このチェックを実行できます。

String id = object.optString("id"); 
//JSONObject.optString("id") will return id's value if it exists or else will return empty string.
if(!"".equals(id)){
       Category_ID.add(Long.parseLong(id));
       //this code will run only when your JSON contains id       
}
else 
{
     //this code will run when your JSON doesn't have id field.
     Category_ID.add();
}
于 2013-08-20T12:36:25.337 に答える
0

ここでidプロパティにアクセスしています:

Category_ID.add(Long.parseLong(object.getString("id")));

そこにない場合、これは例外をスローします。

于 2013-08-20T12:28:02.960 に答える