1
我有下面的示例JSON:的JSONObject到JSONArray以天爲鍵
{\"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年5月30日」)轉換成一個不同的對象,與具有作爲鍵中的每個對象的日子的值?
非常感謝!
我也試過,但後來我會有以下錯誤:'org.JSONException:未終止的數組在字符串14的字符串,這將是第一個':'。 –
對不起,這是一個壞主意,那隻會創建一個android api不支持的JSON映射。你可以使用'JSONObject.keys()'來獲得一個'Iterator'到鍵。然後使用它迭代所有的鍵並獲取相應的JSON對象。這不會給你一個JSONArray,但你仍然可以像數組一樣迭代JSONObject。 – Ali
您也可以嘗試使用'JSONObject.getNames(JSONObject)'這將返回'JSONObject'中變量名稱的'String []',然後可以使用它們來獲取JSONObjects。 – Ali