java - 带有 tastypie JSON 结果的 JSON 格式错误

标签 java json tastypie

我的 Java Android 代码中存在 Tastypie/Django JSON 响应问题。我对 Tastypie API 执行 GET http 方法,并将 httpresponse 解析为 JSON。问题是,当我使用 json 响应创建 JSONArray 时,会抛出异常。

JSONTokener tokener = new JSONTokener(json);
finalResult = new JSONArray(json);

我收到下一条错误消息:

System.err(27193): org.json.JSONException: Value {"objects 
[{"id":"1","resource_uri":"\/api\/v1\/user\/1\/","od_user":"Usuario administrador del 
sitio","nick":"Admin","reg_date":"2012-08-07T15:39:20.706060+00:00"},
{"id":"2","resource_uri":"\/api\/v1\/user\/2\/","od_user":"user 
test","nick":"test1","reg_date":"2012-08-08T10:44:50+00:00"}],"meta":
{"limit":20,"previous":null,"offset":0,"total_count":2,"next":null}} of type 
org.json.JSONObject cannot be converted to JSONArray
W/System.err(27193):    at org.json.JSON.typeMismatch(JSON.java:111)
W/System.err(27193):    at org.json.JSONArray.<init>(JSONArray.java:91)

我从 tastypie API 获取的 JSON 存档是:

{"meta": {"limit": 20, "next": null, "offset": 0, "previous": null, "total_count": 2}, "objects": [{"id": "1", "nick": "Admin", "od_user": "Usuario administrador del sitio", "reg_date": "2012-08-07T15:39:20.706060+00:00", "resource_uri": "/api/v1/user/1/"}, {"id": "2", "nick": "test1", "od_user": "user test", "reg_date": "2012-08-08T10:44:50+00:00", "resource_uri": "/api/v1/user/2/"}]}

我不知道为什么tastypie API JSON格式无法解析为JSONArray。

最佳答案

那是因为您的 JSON 是 JSON 对象而不是数组。您可以解析 JSON,直到获得 objects 值,然后尝试将转换为 JSON 数组。

JSON 数组总是看起来像:

'[1, 2, 3, 4]'

请注意,[] 是 JSON 字符串表示 JSON 数组所需的封装。

关于java - 带有 tastypie JSON 结果的 JSON 格式错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11903389/

相关文章:

javascript - 使用javascript重定向而不加载母版页

python - “选项”对象没有属性 'module_name'

python - 将 tastypie 导入到项目中

java - Android:NoSuchMethodError 接口(interface)中有静态方法(使用 Retrolambda)

jquery - 使用 GET 从 jqGrid 中的列值链接到新页面

java - 如何运行多个 ExecutorServices 来发出请求并通过单个接口(interface)汇集响应?

java - Avro Map 序列化/反序列化问题

ajax - 在 Tastypie View 中公开 "virtual"字段?

java - 使用java mail api从outlook 2010发送邮件

java - Android MediaCodec 如何创建解码器?