2012-05-23 55 views
0

`嗨,夥計,無法在android中獲取json數組值

請檢查此Json的格式。

{"id": "293369****","owner": { 
    "name": "******", 
    "id": "*****"},name": "test event","start_time": "2012-05-18T02:00:00","end_time":"2012-05-18T05:00:00","privacy": "FRIENDS","updated_time": "2012-05-18T08:25:37+0000"} 

M使用此代碼它。能夠獲取除所有者json數組之外的所有值。 我想獲取所有者數組的值。 請告訴我我錯在哪裏。

json = new JSONObject(responsedata); 
     Log.d(TAG, "name=" + responsedata); 
     facebookData = new Events(); 
     JSONArray data=json.optJSONArray("owner"); 

     Log.d(TAG, "Data length==" + data.length()); 
     if (data.length() > 0) { 
      for (int i = 0; i < data.length(); i++) { 

       JSONObject jsonobj = data.getJSONObject(0); 
       Log.d(TAG, "owner Name="+jsonobj.getString("name")); 
      } 
      } 

     facebookData.setEventName(json.getString("name")); 
     facebookData.setEventId(json.getString("id")); 
     facebookData.setEventStartDate(json.getString("start_time")); 
     facebookData.setEventEndDate(json.getString("end_time")); 
     facebookData.setPrivacy(json.getString("privacy")); 
    facebookData.setUpdatedTime("updated_time"); 

我無法獲取所有者姓名和所有者的Facebook ID。在我的json解析器中有一些問題。

請幫助我。

由於提前 拉夫古普塔

回答

5
{ 
    "id":"293369****", 
    "owner":{ 
     "name":"******", 
     "id":"*****" 
    }, 
    "name":"test event", 
    "start_time":"2012-05-18T02:00:00", 
    "end_time":"2012-05-18T05:00:00", 
    "privacy":"FRIENDS", 
    "updated_time":"2012-05-18T08:25:37+0000" 
} 

由於{暗示的JSONObject和[意味着JsonArray。

我沒有在上面的字符串中找到任何JsonArray。 "owner"是JsonObject。

您必須修改代碼中看到http://www.androidcompetencycenter.com/2009/10/json-parsing-in-android/

+0

泰克斯,我得到了你的觀點。 thax +1爲這個概念和快速幫助。是工作。 –

0
try this one 
try{ 
     JSONArray jArray = new JSONArray(result); 
     JSONObject json_data=null; 
      for(int i=0;i<jArray.length();i++) 
      { 
       json_data =jArray.getJSONObject(i); 
       String src_name=json_data.getString("owner"); 


      } 
    }catch(JSONException e){ 
      Log.e("log_tag", "Error parsing data "+e.toString()); 
      Toast.makeText(getApplicationContext(), "fail", Toast.LENGTH_SHORT).show(); 
    } 
+1

它不會工作。 chk hotveryspice的回答。 –

0

如果車主是JSONArray,它應該是這樣的(內部[]

"owner": [{"name": "******", "id": "*****"}]