尝试使用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));
}
我打算解析上面的响应并获取bundle各个变量中的值。
像b.putInt("p", json.getJSONArray("f").getInt(0));
一样应该得到f中的1:[1 ....]
等等。
有人可以帮助我们获取上述响应值的工作代码。
答案 0 :(得分:2)
"f"
是"r"
的子元素,因此您需要像这样访问它:
getJSONObject("r").getJSONArray("f")
答案 1 :(得分: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”);