JSONObject到JSONArray,以天为键

时间:2013-07-11 14:49:53

标签: android key arrays

我有以下示例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\"}}

我将其读入一个String然后将其解析为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”)分成另一个对象,每个对象都具有当天价值的关键字?

非常感谢!

1 个答案:

答案 0 :(得分:1)

不是在开始时添加[而在结尾添加],而是尝试将{的第一个实例替换为[,并将}的最后一个实例替换为] 1}}使用{{1}},然后从中制作JSONArray。