次のサンプル 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") を別のオブジェクトに分割し、各オブジェクトがその日の値をキーとして持つにはどうすればよいですか?
どうもありがとう!