1

次のサンプル json があります。

{\"2013-05-30\":{\"available\":\"1\",\"bind\":0,\"info\":\"\",\"notes\":\"\",\"price\":\"\",\"promo\":\"\",\"status\":\"available\"},
\"2013-05-31\":{\"available\":\"1\",\"bind\":0,\"info\":\"\",\"notes\":\"\",\"price\":\"\",\"promo\":\"\",\"status\":\"available\"},
\"2013-06-01\":{\"available\":\"1\",\"bind\":0,\"info\":\"\",\"notes\":\"\",\"price\":\"\",\"promo\":\"\",\"status\":\"available\"}}

これを文字列に読み取り、JSONObject に解析しますが、JSONArray にする必要があります。JSONArrayに変換する前に、文字列の先頭に「[」、末尾に「]」をプログラムで追加しようとしましたが、配列として認識されますが、それでも単一のオブジェクトとして認識されます(私は JSONArray(0) しか持っていないようです)。

これは、jsonData を配列として解析しようとする方法です。

try{
jArray = new JSONArray(resultString);
for(int i=0;i<jArray.length();i++){
        JSONObject json_data = jArray.getJSONObject(i);
        Log.i("log_4","Available: "+json_data.getString("available")+
        ", Bind: "+json_data.getString("bind")+
        ", Info: "+json_data.getString("info") +
        ", Notes: "+json_data.getString("notes") +
        ", Price: "+json_data.getString("price") +
        ", Promo: "+json_data.getString("promo") +
        ", Status: "+json_data.getString("status")
        );
    }
}catch(JSONException e){
Log.e("log_5", "Error parsing data "+e.toString());
}

これは [ と ] を追加しないバージョンなので、JSONObject として解析します。

try {
    jsonResponse = new JSONObject(resString);
} catch (JSONException e) {
    Log.e("log_3", "Error parsing data "+e.toString());
    }

各日 (例: "2013-05-30") を別のオブジェクトに分割し、各オブジェクトがその日の値をキーとして持つにはどうすればよいですか?

どうもありがとう!

4

1 に答える 1

1

[最初と最後にaを追加する代わりに、 with]の最初のインスタンスと{with[の最後のインスタンスを}置き換え]てから、それから JSONArray を作成してみてください。

于 2013-07-11T15:02:01.037 に答える