0

我有一个小问题,当我尝试解析我的 JSON 流时,我遇到了一个错误

if(error) {NSLog(@"%@",error);}

这告诉我这个

2013-04-14 23:53:09.979 测试 [24463:303] 错误域 = NSCocoaErrorDomain 代码 = 3840 “数据已损坏,无法读取。” (字符 215 周围未转义的控制字符。) UserInfo=0x10042f6c0 {NSDebugDescription=字符 215 周围的未转义控制字符。}

问题是我的 JSON 流似乎很完美,你可以在这里找到它:http: //api.kalokod.com/cce/news.json,完美的'因为 JSONLint 返回这个 JSON 是有效的。

任何想法 ?谢谢 !

编辑

这是我的解析器

- (NSDictionary *)JSONParser:(NSString *)JSONFile {

NSError *jsonParserError;

NSURL *myJSONfileURL = [NSURL URLWithString:JSONFile];

NSString *myJSONstring = [NSString stringWithContentsOfURL:myJSONfileURL encoding:NSUTF8StringEncoding error:&jsonParserError];

if (jsonParserError) {
    NSLog(@"%@", jsonParserError);
}

NSData *jsonData = [myJSONstring dataUsingEncoding:NSUTF8StringEncoding];

NSError *error;

NSDictionary *JSONParser = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&error];

if (error) {
    NSLog(@"%@", error);
}


return JSONParser;

}

4

1 回答 1

0

JSON 不必是 UTF-8。如果 JSON 数据是 UTF-16 或 UTF-32,那么您将其转换为 NSString 的尝试将大错特错。尝试

NSData* data = [NSData dataWithContentsOfURL...]

并将数据直接传递给 JSONObjectWithData。顺便提一句。“无法连接到服务器”是链接给我的。

于 2014-02-20T23:39:46.700 回答