0

`嗨伙计们,

请检查此 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 使用此代码。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 解析器有一些问题。

请帮助我。

在此先感谢 Gaurav Gupta

4

3 回答 3

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/

于 2012-05-23T05:49:17.433 回答
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();
    }
于 2012-05-23T05:44:30.270 回答
0

如果所有者是 a JSONArray,它应该看起来像这样(内部[]

"owner": [{"name": "******", "id": "*****"}]
于 2012-05-23T05:53:35.653 回答