2010-09-07 35 views
2

我有一个stringAndroid应用程序,我试图将其转换为JSONObject。该string看起来是这样的(除了时间更长,实际值,而不是虚拟值我进入这里):org.json.JSONObject构造函数不接受似乎是有效的JSON字符串

[[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]] 

我已经进入这个确切string分为两个在线JSON validator s,而他们都确认它是有效的JSON data。所以我会假设JSONObject构造函数将能够接受这个字符串并将其转换为JSONObject。但是,当我尝试:

json = new JSONObject(result); 

其中“结果”是上面列出包含字符串一个字符串变量,我得到以下异常:

JSONException: A JSONObject text must begin with '{' at character 1 of [[{"1":"a"}],[{"1a":"1a","1b":"1b"},{"2a":"2a","2b":"2b"}]] 

这是怎么回事? JSONObject的解析器是否损坏?

回答

8

您正试图创建一个JSONObject,但实际上给它的是一个JSONArray。你有没有尝试创建一个JSONArray?

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

+1

好,好。这正是问题所在。为什么我没有看到?非常感谢你。 – 2010-09-07 22:57:24

+0

JSONObject jsonObject = new JSONObject(json.toString())...此行引发错误,指出“找不到适合JSONObject(String)的构造函数” – 2017-12-14 06:27:23

0

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

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