JSON使用android中的Json Web服务遍历元素

时间:2011-08-30 10:49:22

标签: android web-services json

我正在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响应。提前谢谢。

4 个答案:

答案 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");