转换为Json对象时出错

时间:2013-07-12 07:53:25

标签: android json

我正在使用restful webservice,我从中获取json,如下所示

  response = [{"id":1,"name":"Appetizers","image":"iVBORw0KGgoAAAANSUhEUgAAADgAAAAkCAIAAABT8G6pAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAABb5SURBVFhHPVgHUFPrtmbevTPvvnPvO8eKKJ1ASAikEEIaSYBAEkroSLWBHex67A3FBhYsWEFUBBuCDRRRpCMlhPS+0zs1gHD0HN72vjfvnzV/dpI9s7 ....

之后我想将这个json转换为JSONObject

  JSONObject obj = new JSONObject(response);

当我执行此命令时,我得到了以下错误

org.json.JSONException: Value [{"resturantID":{"phoneNo":"a","id":1,"fax":"a","address":"a" ...

当我使用glassfish 3时,我的程序运行良好,因为json结构与此不同 问题是什么 ?

3 个答案:

答案 0 :(得分:1)

这是JSONArray而不是JSONObject - 从中​​制作JSONObject,使用

JSONObject jsonObject = jsonArray.getJSONObject(0);

这将从此JSONArray中获取第一个JSONObject。

如果您有多个JSONObjects,请使用:

JSONObject jsonObject;
for(int n = 0; n < jsonArray.length(); n++)
{
    jsonObject = jsonArray.getJSONObject(n);
}

答案 1 :(得分:1)

如果你的response在迭代后保持stringbuilder的输出 然后你可以尝试下面的代码

try{
            jArray = new JSONArray(response);
            for(int i=0;i<jArray.length();i++){
                    json_data = jArray.getJSONObject(i);
            }
}

注意:不要忘记在班级声明jArray(JSONARRAY的对象)和json_data(JSONOBJECT的对象)

答案 2 :(得分:0)

我认为,问题在于你的JSON。 JSON无效。

"id":1

应该是

"id":"1"

请检查。