我有一个名为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。有这么简单或既定的方法吗?
非常感谢。
答案 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/来格式化和验证我的数据。我没有以任何方式与该网站相关联。我觉得它真的很有用。