0

试图使用 android JSON 对象来解析特定的响应,但我无法编写一个代码来解析这个响应“{“r”:{“f”:[1,0,15,5948]}}”。

尝试使用以下代码,但出现错误:

"没有 f 值:{"r":{"f":[1,0,15,5948]}}"

代码如下:

String abc = "{\"r\":{\"f\":[1,0,15,5948]}}";

JSONObject json = new JSONObject(abc);

if (json.has("r")) {

Bundle b = new Bundle();

b.putInt("p", json.getJSONArray("f").getInt(0));

b.putInt("s", json.getJSONArray("f").getInt(1));

}

我打算解析上述响应并获取捆绑相应变量中的值。就像b.putInt("p", json.getJSONArray("f").getInt(0));应该得到 f:[1....] 中的 1 等等。

有人可以帮助获得一个工作代码来获取上述响应的值。

4

2 回答 2

2

"f"是 的子元素"r",因此您需要像这样访问它:

getJSONObject("r").getJSONArray("f")

于 2013-05-26T11:34:48.313 回答
0

当你这样做时:

b.putInt("p", json.getJSONArray("f").getInt(0));

json变量仍然引用您的 json 的根对象。您必须向下遍历一层才能访问字段 f。

这对我有用:

String abc = "{\"r\":{\"f\":[1,0,15,5948]}}";
JSONObject json = new JSONObject(abc);
if (json.has("r")) {
    json = json.getJSONObject("r");
    Bundle b = new Bundle();
    b.putInt("p", json.getJSONArray("f").getInt(0));
    b.putInt("s", json.getJSONArray("f").getInt(1));
}

注释行:

json = json.getJSONObject("r");

于 2013-05-26T11:49:29.213 回答