【发布时间】:2013-10-28 19:36:20
【问题描述】:
一旦我触发对 JSON 资源的请求,我就会得到以下信息:
The operation couldn’t be completed. (Cocoa error 3840.)" (JSON text did not start with array or object and option to allow fragments not set.) UserInfo=0x1d87a2c0 {NSDebugDescription=JSON text did not start with array or object and option to allow fragments not set.}
问题是我应该在哪里设置AFNetworking 2.0 中的允许片段?
更新:
我的类是 AFHTTPSessionManager 的子类。我已经创建了一个 JSONResponseSerializer,它也不起作用。
返回的JSON如下:
[{"StoryId":1,"Title":"The big red dog","Abstract":"There was a big red dog and the dog was very big","IsFeatured":true}]
-(instancetype) initWithBaseURL:(NSURL *)url
{
NSURL *base = [NSURL URLWithString:@"URL to the web service that returns the json"];
self = [super initWithBaseURL:base];
AFJSONResponseSerializer *responseSerializer = [AFJSONResponseSerializer serializerWithReadingOptions:NSJSONReadingAllowFragments];
[self setResponseSerializer:responseSerializer];
return self;
}
返回的错误如下:
[0] (null) @"NSDebugDescription" : @"Invalid value around character 0."
来自网络服务器的响应:
[{"StoryId":1,"Title":"The big red dog","Abstract":"There was a big red dog and the dog was very big","IsFeatured":true}]
来自网络服务器的响应状态:
HTTP/1.1 200 OK
Server: Microsoft-IIS/7.0
X-Powered-By: ASP.NET
Content-Type: application/json;charset=utf-8
X-AspNetMvc-Version: 3.0
Connection: close
Date: Mon, 28 Oct 2013 20:02:21 GMT
Content-Length: 121
Cache-Control: private
X-AspNet-Version: 4.0.30319
[{"StoryId":1,"Title":"The big red dog","Abstract":"There was a big red dog and the dog was very big","IsFeatured":true}]
【问题讨论】:
-
这是网络服务器响应的问题,不是 AFNetworking。
-
响应有效!我刚刚验证了 JSON,返回的是有效的 JSON。
-
我没有说它无效。我说问题是由它引起的。 JSON 数据往往包含在数组或对象中。 @Wain 是对的,你必须告诉 AFNetworking
NSJSONSerialization应该使用哪些选项来读取 JSON 数据。 -
我已经这样做了,看看我更新的问题!
-
啊,我看到你的编辑,我收回我的话。
标签: ios afnetworking afnetworking-2