2013-05-26 69 views
0

正试图使用​​android JSON对象来解析特定的响应,但无法制作解析此响应的代码“{”r“:{”f“:[1,0,15 ,5948]}}”。Android JSONObject解析问题

使用以下代码试过,但我得到错误:

“否对于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 ....] 等等。

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

回答

2

"f""r"一个子元素,因此,你需要访问它是这样的:

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

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”);

+0

谢谢smuk,我会检查是否帮助我获得价值。 – user2422139