org.json.JSONObject构造函数不接受看似有效的JSON字符串

Rus*_*art 2 java android json jsonobject android-json

我有一个string在一个Android应用程序,我想转换成一个JSONObject.在string这个样子的(除了时间更长,实际值,而不是我这里输入的虚拟值):

[[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]
Run Code Online (Sandbox Code Playgroud)

我已将其精确地输入string到两个在线版中JSON validator,并且它们都确认它是有效的JSON data.所以我假设JSONObject构造函数能够接受这个字符串并将其转换为JSONObject.但是当我尝试:

json = new JSONObject(result);
Run Code Online (Sandbox Code Playgroud)

其中"result"是包含上面列出的字符串的String变量,我得到以下异常:

JSONException: A JSONObject text must begin with '{' at character 1 of [[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]]
Run Code Online (Sandbox Code Playgroud)

这里发生了什么?这个JSONObject解析器坏了吗?

Che*_*mon 8

您正在尝试创建一个JSONObject,但实际上它是一个JSONArray.您是否尝试过创建JSONArray?

或者,您可以将数组包装在一个对象中,以便可以从中创建一个JSONObject.