我正在向外部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"
}
我认为上面发生的事情是更新时的值为“2012-06 ...等等”,下一个键值项目将是创建者:{id,name}但它不知何故被混淆了更新了。
有类似问题的人吗?我不认为问题出在JSONValue上,因为我在解析之前会先注销dataString,这就是我发现JSON错误的地方。
我的意思是NSString *dataString = [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding];
只是一个长字符串,但其中有一个错误的JSON,因为它是混乱的。
答案 0 :(得分:2)
您是否一次通过多个连接使用receivedData?
:)
答案 1 :(得分:-1)
我认为你的json错了。用于检查只是将json文件放入: http://jsonlint.com/
如果有效则:
将SBJSON框架类导入到您的项目中。并尝试以下代码:
SBJSON *parser=[[SBJSON alloc]init];
NSDictionary * dictionary = [parser objectWithString:responseString];
这将通过使用:
将数据提供给字典NSString *firstParseData=[dictionary objectForKey:@"your key"];
您可以检索数据。希望这适用于你的情况。