从JSON获取一些数据

时间:2012-11-14 07:57:31

标签: android json

我需要JSON的帮助。我得到JSON如下:

{
    "1": {
    "id": "1",
    "position": "1",
    "Category": {
        "id": "1",
        "position": "1",
        "created_at": "2012-10-24 15:42:47",
        "updated_at": "2012-11-13 13:46:25",
        "name": "ABCD"
                }
          }
 }

我希望从字段 Category 获取所有数据。

我这样试试:

JSONObject categoryObject = json.getJSONObject("Category"); 

但我收到错误:

no value for Category. How I can get data for Category field?

3 个答案:

答案 0 :(得分:1)

JSONObject categoryObject = json.getJSONObject("1").getJSONObject("Category");  
categoryObject.get("id"); // return 1  
categoryObject.get("position"); // return 1   
categoryObject.get("name"); // return "ABCD"

答案 1 :(得分:1)

你应该做下面的事情。

JSONObject json1 = json.getJSONObject(“1”);

JSONObject categoryObject = json1.getJSONObject(“Category”);

您可以在site

上看到hierarhy

答案 2 :(得分:0)

try {
        String jsonString="{\"1\":{\"id\":\"1\",\"position\":\"1\",\"Category\":{\"id\":\"1\",\"position\":\"1\",\"created_at\":\"2012-10-24 15:42:47\",\"updated_at\":\"2012-11-13 13:46:25\",\"name\":\"ABCD\"}}}";
        JSONObject jsonObject=new JSONObject(jsonString);
        JSONObject jsonObject1= jsonObject.getJSONObject("1");

        String id=jsonObject1.getString("id");
        String position =jsonObject1.getString("position");

        JSONObject jsonObjectCategory= jsonObject1.getJSONObject("Category");

        String idCategory=jsonObjectCategory.getString("id");
        String positionCategory=jsonObjectCategory.getString("position");
        String createdAt=jsonObjectCategory.getString("created_at");
        String updatedAt=jsonObjectCategory.getString("updated_at");
        String name=jsonObjectCategory.getString("name");

        Log.e(getClass().getSimpleName(), "name="+name +"; created_at= "+createdAt);
    } catch (JSONException e) {
        e.printStackTrace();
    }