我在string
应用中有一个Android
,我想将其转换为JSONObject
。 string
看起来像这样(除了更长的实际值而不是我在这里输入的虚拟值):
[[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]
我已将这个确切的string
输入到两个在线JSON validator
中,并且他们都确认它有效JSON data
。所以我假设JSONObject
构造函数能够接受这个字符串并将其转换为JSONObject
。但是当我尝试:
json = new JSONObject(result);
其中“result”是包含上面列出的字符串的String变量,我得到以下异常:
JSONException: A JSONObject text must begin with '{' at character 1 of [[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]
这里发生了什么? JSONObject
的解析器是否已损坏?
答案 0 :(得分:8)
您正在尝试创建一个JSONObject,但实际上它是一个JSONArray。您是否尝试过创建JSONArray?
或者,您可以将数组包装在一个对象中,以便可以从中创建一个JSONObject。
答案 1 :(得分:0)
我建议使用GSon library,因为它看起来更全功能。
此外,使用this tool测试您的数据(您的数据是有效的btw)可能会有所帮助: