在Android中解析嵌套的JSON数据

时间:2016-12-06 13:18:20

标签: android arrays json

我正在尝试解析在android中看起来像这样的JSON数据;

{
"data": [{
    "http_code": 200,
    "message": "success",
    "created_at": "2016/10/12",
        "categories": [{
            "cat_id": 1,
            "cat_name": "Business and Commerce",
                "subcategories":[{
                    "subcat_id": 1,
                    "subcat_name": "Intellectual Property",
                        "articles":[{
                            "article_id": 1,
                            "article_heading": "What is intellectual?",
                            "article_url": "http://example.com/1"
                        },{
                            "article_id": 2,
                            "article_heading": "Types of intellectual Properties",
                            "article_url": "http://example.com/2"
                        }]
                }, {
                    "subcat_id": 2,
                    "subcat_name": "Business Licensing",
                        "articles":[{
                            "article_id": 1,
                            "article_heading": "What is a license?",
                            "article_url": "http://example.com/1"
                        },{
                            "article_id": 2,
                            "article_heading": "Types of Business Licenses",
                            "article_url": "http://example.com/2"
                        }]
                }]
        }, {
            "cat_id": 2,
            "cat_name": "Family Law",
                "subcategories":[{
                    "subcat_id": 3,
                    "subcat_name": "Domestic Violence",
                        "articles":[{
                            "article_id": 1,
                            "article_heading": "What is domestic violene?",
                            "article_url": "http://example.com/1"
                        },{
                            "article_id": 2,
                            "article_heading": "Types of domestic violence",
                            "article_url": "http://example.com/2"
                        }]
                }, {
                    "subcat_id": 4,
                    "subcat_name": "Marriage",
                        "articles":[{
                            "article_id": 1,
                            "article_heading": "What is a marriage?",
                            "article_url": "http://example.com/1"
                        },{
                            "article_id": 2,
                            "article_heading": "Types of marriages",
                            "article_url": "http://example.com/2"
                        }]
                }]
        }]
}]

}

当我通过列表视图列表项单击等选择它时,我应该看到特定节点的数据....

到目前为止,我已设法解析所有类别并在列表视图中显示它们,但我想显示我在列表视图中选择的类别的子类别。

4 个答案:

答案 0 :(得分:1)

在列表视图上设置onItemClickListener并使用所选项目的位置返回相关的子类别?

例如,也许还有以下几点:

{
  babel: {
       blacklist: ['useStrict']
}
}

答案 1 :(得分:0)

使用此链接上提供的ExpandableListViewexample。 对于使用Google gson的json解析,它将使您的工作变得简单而有效。

答案 2 :(得分:0)

它似乎与How to parse this nested JSON array in android类似 但你可以使用这个lib https://github.com/FasterXML/jackson 使用Objects使工作变得轻松快捷。 这是一个小教程:JacksonInFiveMinutes 特别是:完整数据绑定(POJO)示例。和JacksonDataBinding

答案 3 :(得分:0)

感谢大家的帮助。我终于设法解决了这个问题; 我是这样做的;

JSONObject jsonObj = new JSONObject(jsonStr);
JSONObject subcategories = jsonObj.getJSONObject("data").getJSONArray("categories").getJSONObject((int)getItemId(position));
Log.e("TAG","Subcategories: " + subcategories);

我不知道这是不是正确的方法,但它适用于我的情况。