以下是我从api获得的json数据
{
"list": {
"items": [
"About Us",
"Services",
"Working With",
"Officehours",
"Useful Links",
"Terms & Conditions",
"Go to Website"
]
},
"data":
{
"about us": { "description": " Aaaaaaaa" },
"services": { "description": " Baaaaaaa." },
"working with": { "description": "Caaaaaa" },
"officehours": { "title": "Office Hours:","timing": "09:00am - 06:00pm"},
"useful links": { "description": [
{
"name": "One",
"link": "http://www.google.com/"
},
{
"name": "Two",
"link": "http://www.yahoo.com"
}]},
"terms & conditions": { "description": "Daaaaaaaaa" },
"go to website": { "link": "http: //www.amazon.com/" },
}
}
在上面的json数据中,json数组中的“list”值将显示在listview中。我已将它们添加到数组列表中,并在列表视图中显示。
现在,当用户单击列表视图时,与其对应的数据将显示在下一个活动中。例如,如果用户点击About US text of listview
,那么我将如何在下一个活动中显示description Aaaaaaa
。
对于列表视图中的每个项目,我必须打开不同的活动。
如果内部代码为description
,则必须打开activity1
如果内部代码为title
,则必须打开activity2
如果内部代码为link
,则必须打开activity3
如果内部标记description
是JSON数组类型,则必须打开activity4
我不应该在代码中对代码中的"about us", "services","working with","officehours","useful links","terms & conditions", "go to website"
等代码进行热编码。
在我的OnItemClickListener中,我正在执行以下操作
try
{
JSONObject locarray = new JSONObject(Appconstant.dataObj.get(0).toString());
String txt_data = locarray.getJSONObject(about.get(arg2).toLowerCase()).getString("description");
}
catch(Exception e)
{
Log.e("Exception @ json 1",""+e);
}
在某些情况下我得到一个例外,说没有“描述”的JSOn值
如何做到这一点,请帮助我
答案 0 :(得分:0)
这样做的一种方法是
JSONObject jobj = new JSONObject(content); // the content you have above
JSONObject data = jobj.getJSONObject("data");
JSONObject aboutUs = data.getJSONObject("about us");
String desc = aboutUs.getString("description:);
不确定这是否有帮助:)如果有描述为空白的情况使用
aboutUs.optString("description");