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

时间:2010-09-07 22:37:29

标签: java android json jsonobject android-json

我在string应用中有一个Android,我想将其转换为JSONObjectstring看起来像这样(除了更长的实际值而不是我在这里输入的虚拟值):

[[{"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的解析器是否已损坏?

2 个答案:

答案 0 :(得分:8)

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

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

答案 1 :(得分:0)

我建议使用GSon library,因为它看起来更全功能。

此外,使用this tool测试您的数据(您的数据是有效的btw)可能会有所帮助: