0

我正在使用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 结构与此不同,这是什么问题?

4

3 回答 3

1

这是 aJSONArray而不是 a JSONObject- 要从中制作 JSONObject,请使用

JSONObject jsonObject = jsonArray.getJSONObject(0);

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

如果你有多个 JSONObjects,使用这个:

JSONObject jsonObject;
for(int n = 0; n < jsonArray.length(); n++)
{
    jsonObject = jsonArray.getJSONObject(n);
}
于 2013-07-12T08:01:12.370 回答
1

如果您response在迭代后保留了 stringbuilder 的输出,那么您可以尝试下面的代码

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

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

于 2013-07-12T08:35:12.353 回答
0

我认为,问题出在您的 JSON 上。JSON 无效。

"id":1

它应该是

"id":"1"

请检查。

于 2013-07-12T07:57:06.093 回答