[英]Simple Json parsing in android
我得到了Json的回應。 我無法從字符串中獲取值。我的字符串是
Json_response是
{"NameAllList":[{"Current":{"time":"2012-02-21T08:04:21","Name":"abcd"},
"Next":{"Name":"data1","StartTime":"2012-02-21T08:06:21"}},{"Current":{"time":"2012-02-21T08:14:21","Name":"defg"},
"Next":{"Name":"data2","StartTime":"2012-02-21T08:24:21"}},{"Current":{"time":"2012-02-21T08:28:21","Name":"ghij"},
"Next":{"Name":"data3","StartTime":"2012-02-21T08:34:21"}},{"Current":{"time":"2012-02-21T08:40:21","Name":"knmo"},
"Next":{"Name":"data4","StartTime":"2012-02-21T08:48:21"}}]}
我嘗試了這個
JSONObject jsonObj = new JSONObject(json_response);
JSONObject subObj = jsonObj.getJSONObject("Current");
String name_current =subObj.getString("Name");
但我無法獲得“名稱”的值。 我犯了什么錯誤。 提供進行上述解析的鏈接。
首先,您的JSON響應將NameAllList作為對象的JSON數組。
因此,您必須先獲取JSON Array,然后才能獲取一對一對象。
例如:
JSONObject jsonString = (new JSONObject(json_response_string));
JSONArray array = jsonString.getJSONArray("NameAllList");
for(int i=0; i<array.length(); i++)
{
// Retrieve Current object as such
JSONObject objCurrent = array.getJSONObject("Current");
// Retrieve Next object as such
JSONObject objNext = array.getJSONObject("Next");
}
似乎您應該在第二個請求中使用JSONArray時嘗試使用JSONObject。 嘗試這個:
JSONObject jsonString = (new JSONObject(json_response_string));
JSONArray array = jsonString.getJSONArray("NameAllList");
在JSON返回中,“ NameAllList實際上是一個數組,需要這樣處理。將其設置為“ array”后,便可以運行for循環並將其與Java中的任何其他數組一樣對待。
讓我知道是否有幫助。
大衛
您沒有正確解析json,因此無法獲取Name的值。 請注意,JSON Annotation []表示JSONArray,{}表示JSONObject,因此獲取當前項名稱的方法是:
JSONObject jsonObj = new JSONObject(json_response_string);
JSONArray jsonArr=jsonObj.getJSONArray("NameAllList");
String Hora_name_current="";
for(int i=0;i<jsonArr.length();i++)
{
JSONObject obj=jsonArr.get(i);
try{
JSONObject subObj = obj.getJSONObject("Current");
Hora_name_current =subObj.getString("Name");
break;
}catch(JSONException ex)
{
}
}
JSONObject jsonObj =新的JSONObject(json_response_string); JSONArray jsonArray = jsonObj.getJSONArrays(“ NameAllList”);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.