Android中的JSON数组或对象错误

时间:2013-02-15 20:58:24

标签: android json

我有一个名为data的HttpClient返回的字符串。

Data = {"result":[{"id":"2","contextID":"1","name":"Kitchen","image":"81"},
{"id":"1","contextID":"1","name":"Living Room","image":"18"},
{"id":"3","contextID":"1","name":"Toilet","image":"75"}]}

我正在执行此代码:

resultArray = new JSONArray (data);

并返回此JSONArray。但是,我收到一个JSONException错误:

JSONObject cannot be converted to JSONArray

当然这是一个JSONArray而不是JSONObject?或者它是JSONObjects的JSONObject?我是JSON的新手,我想要使用这些导入的值循环并创建新的Locations。有这么简单或既定的方法吗?

非常感谢。

3 个答案:

答案 0 :(得分:2)

Data是一个JSONObject,Data["result"]是一个包含JSONObjects的JSONArray。

答案 1 :(得分:1)

它是一个json对象,里面有JSONArray的JSONObject。 {}表示对象,[]表示数组。因此,您将顶级字符串作为JSON对象获取,然后将结果参数作为数组获取,然后将每个索引作为对象获取结果(并且您可以通过getString获取这些参数等)。

答案 2 :(得分:0)

数据实际上是JSONObject,其中包含JSONArray名为“结果”的内容。如果您想获得JSONArray,则必须执行以下操作:

JSONObject dataObj = new JSONObject(data);
JSONArray dataArr = dataObj.getJSONArray("result");

为了将来参考,由于您是JSON的新手,{}括号内的数据是JSONObject,[]括号内的数据是JSONArray。数组和对象可以互相嵌套,有时难以阅读。如果您需要帮助阅读,我建议格式化您的数据。我个人使用http://jsonformatter.curiousconcept.com/来格式化和验证我的数据。我没有以任何方式与该网站相关联。我觉得它真的很有用。