我正在向外部 API 发送请求并使用 SBJson parser 解析响应.但是,我怀疑响应太长,以某种方式变得困惑。
在我的 mainviewcontroller.h 文件中,我设置了 NSMutableData *receivedData;
以便我可以在 mainviewcontroller.m 文件中的连接方法中使用它。
但是,在连接完成加载后,我执行以下操作:
- (void)connectionDidFinishLoading:(NSURLConnection *)connection {
NSString *dataString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
NSArray *allData = [dataString JSONValue];
}
但是,我收到一堆错误,提示 JSON 格式不正确。所以,当我查看 JSON 时,它很长——但到处都有问题……例如,下面的“updated_at”。
{
"id": 7844333,
"position": 3,
"content": "Cell height is off by 5 pixels",
"created_at": "2012-06-04T20:31:30-05:00",
"updated_at": "2ator": {
"id": 98258,
"name": "Brian"
}
我认为上面发生的事情是 updated at 的值为“2012-06...etc”,下一个键值项将是 creator : { id, name } 但不知何故它被混入了 updated at。
有人遇到过类似的问题吗?我不认为问题出在 JSONValue 上,因为我在 dataString 被解析之前 nslog 了它,这就是我发现 JSON 错误的地方。
我的意思是 NSString *dataString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
只是一个长字符串,但里面有错误的 JSON,因为它是困惑的.
最佳答案
您是否同时通过多个连接使用 receivedData?
:)
关于objective-c - 无法从 connectionDidFinishLoading 中的数据解析 JSON – 也许是数据太多了?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10892229/