【发布时间】:2015-02-25 14:25:45
【问题描述】:
我正在使用下面的代码来获取价格值。我可以得到价格的价值。然而,当涉及到地壳时,它就例外了。
@Override
public void onTaskCompleted(JSONArray responseJson) {
try {
List<String> crust = new ArrayList<String>();
List<String> price = new ArrayList<String>();
for (int i = 0; i < responseJson.length(); ++i) {
JSONObject object = responseJson.getJSONObject(i);
if ((object.getString("MainCategoryID")).equals("1")
&& (object.getString("SubCategoryID")).equals("1")) {
Log.i("Price ", object.getString("Price"));
price.add(object.getString("Price"));
Log.i("Crust ", object.getString("Crust"));
crust.add(object.getString("Crust"));
}
}
} catch (JSONException e) {
e.printStackTrace();
}
}
这是 json 响应
{
"Category":"1PI",
"Price":0.0000,
"SubCategoryID":1,
"SubMenu":true,
"SubMenuEntity":[
{
"Crust":"Sausage",
Crust 位于数组内部的数组中,我如何在上面的编码中访问地壳。
任何帮助将不胜感激。
【问题讨论】:
-
“Crust 位于数组中,数组位于数组中”:不,Crust 位于 JSON 对象中的 JSON 数组中的 JSON 对象中。您需要做的就是获取
SubMenuEntity(JSON 数组)的值并获取它包含的 JSON 对象,然后获取 Crust 名称/值对的值。 -
从您的对象中获取 jsonArray 并从该数组中获取 Crust。我建议您在解析 json 响应时使用 GSON,而且最好在您的项目中使用 JSON 库,例如为性能和可管理性进行改造。
标签: android jsonresponse