我正在尝试解析在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"
}]
}]
}]
}]
}
当我通过列表视图列表项单击等选择它时,我应该看到特定节点的数据....
到目前为止,我已设法解析所有类别并在列表视图中显示它们,但我想显示我在列表视图中选择的类别的子类别。
答案 0 :(得分:1)
在列表视图上设置onItemClickListener并使用所选项目的位置返回相关的子类别?
例如,也许还有以下几点:
{
babel: {
blacklist: ['useStrict']
}
}
答案 1 :(得分:0)
使用此链接上提供的ExpandableListView
,example。
对于使用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);
我不知道这是不是正确的方法,但它适用于我的情况。