簡體   English   中英

Android中的簡單Json解析

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM