如何用android解析json

时间:2014-06-30 05:19:38

标签: android json

如何用android获取json数据 我的json是这样的:

[
  {
    "meta": {
      "next_id": 30
    }
  },
  {
    "data": [
      {
        "category_id": "2",
        "name": "Anniversary Facebook Status",
        "count": "53"
      },
      {
        "category_id": "4",
        "name": "April Fool Status",
        "count": "16"
      },
      {
        "category_id": "79",
        "name": "Wise Facebook Status",
        "count": "90"
      }
    ]
  }
]

我的代码

    JSONObject jsonobject = JSONfunctions.getJSONfromURL("URL");
    JSONArray jsonarray = jsonobject.getJSONArray("data");
    for (int i = 0; i < jsonarray.length(); i++) {
        jsonobject = jsonarray.getJSONObject(i);
        Log.i("ID", jsonobject.getString("category_id"));
        Log.i("Name", jsonobject.getString("name"));
    }

我想获得“数据”数组。 如果有人知道,请帮忙:

谢谢。

4 个答案:

答案 0 :(得分:3)

试试这个。

JSONArray total_array = new JSONArray(string json);
JSONArray data_array = total_array.getJSONObject(1).getJSONArray("data");
for(int i = 0; i < data_array.length(); i++){
     JSONObject json_data = data_array.getJSONObject(i);
     String category_id = json_data.getString("category_id");
}

答案 1 :(得分:1)

这可能会对你有所帮助:

JSONArray jsonArray;
    try {

        jsonArray = new JSONArray("YOUR JSON DATA");
        Log.v("MAIN ACTIVITY", "JSON OBJECT :"+jsonArray.getJSONObject(0).getJSONObject("meta").getString("next_id"));
        JSONArray dArray    =   jsonArray.getJSONObject(1).getJSONArray("data");
        for(int i=0;i<dArray.length();i++)
        {
            JSONObject jsonObject   =   dArray.getJSONObject(i);

            Log.v("MAIN ACTIVITY", "JSON DATA :"+jsonObject.getString("category_id"));
            Log.v("MAIN ACTIVITY", "JSON DATA :"+jsonObject.getString("name"));
            Log.v("MAIN ACTIVITY", "JSON DATA :"+jsonObject.getString("count"));
        }
    }
    catch (JSONException e1) {
        e1.printStackTrace();
    }

答案 2 :(得分:0)

获取json数组

JSONArray jsonArray = new JSONArray(jsonStr);
JSONArray dataArray= jsonArray.getJSONObject(1).getJSONArray("data");

    for(int i=0;i<dataArray.length();i++){
         JSONObject json_data = dataArray.getJSONObject(i);
         String category_id = json_data.getString("category_id");
         String name = json_data.getString("name");
         String count = json_data.getString("count");
    }

有关详细信息,请参阅Android JSON Parsing Tutorial

答案 3 :(得分:0)

通过Google查看Gson图书馆。使用随附的JSON实验室手动解析字段比这更容易。