我正在JSONObject中获取json webservice的结果。在打印这个jsonObject时,它打印出精确的结果。我在获取此结果中的值时遇到问题,因为我正在阅读一个复杂的响应,其形式为
{"FoodMenuRS"
:{"Status":"Success",
"TotalResults":2,
"Results":{"Items":
{"Item":[
{"@Id":"6","@Name":"Tea"},
{"@Id":"4","@Name":"Coffee"}
]}}}}
我正在阅读,
JSONArray jsonArray = json.getJSONArray("Item");
这里我收到错误“没有物品价值”
当我在调用另一种格式简单的服务时获取值,
{"earthquakes":
[{"eqid":"c0001xgp","magnitude":8.8,"lng":142.369,"src":"us","datetime":"2011-03-11 04:46:23","depth":24.4,"lat":38.322},
{"eqid":"2010xkbv","magnitude":7.5,"lng":91.9379,"src":"us","datetime":"2010-06-12 17:26:50","depth":35,"lat":7.7477}]}
我用它来调用它,
JSONArray earthquakes = json.getJSONArray("earthquakes");
请帮助获取如何获取此类型的Json响应。提前谢谢。
答案 0 :(得分:2)
是的,它非常复杂,但我建议您使用Gson库来解析Json,因为它以结构方式解析 example
答案 1 :(得分:0)
答案 2 :(得分:0)
private String jString = "{\"menu\": {\"id\": \"file\", \"value\": \"File\", \"popup\": { \"menuitem\": [ {\"value\": \"New\", \"onclick\": \"CreateNewDoc()\"}, {\"value\": \"Open\", \"onclick\": \"OpenDoc()\"}, {\"value\": \"Close\", \"onclick\": \"CloseDoc()\"}]}}}";
JSONObject menuObject = jObject.getJSONObject("menu");
String attributeId = menuObject.getString("id");
String attributeValue = menuObject.getString("value");
JSONObject popupObject = menuObject.getJSONObject("popup");
JSONArray menuitemArray = popupObject.getJSONArray("menuitem");
每个新的curley大括号都会调用getJSONObject和子调用getString。
或者您可以按照Gson概念来获取响应。
答案 3 :(得分:0)
完成
JSONObject menuObject = jObject.getJSONObject("menu");
String attributeValue = menuObject.getString("value");