5

我收到一些带有奇怪 UTF-8 字符串的 JSON。例如:

{
  "title": "It\U2019s The End";
}

处理这些数据以便以可读方式呈现的最佳方式是什么?我想将该 \U2019 转换为它应该代表的引号。

编辑:假设我已将字符串解析为 NSString*jsonResult

编辑 2:我通过AFNetworking接收 JSON :

AFJSONRequestOperation *operation = [AFJSONRequestOperation JSONRequestOperationWithRequest:request success:^(NSURLRequest *request, NSHTTPURLResponse *response, id JSON) {
    NSString* jsonResult = [JSON valueForKeyPath:@"title"];
} failure:nil];
4

1 回答 1

4

更新:

Kurt 已经引起了人们对引擎盖下AFJSONRequestOperation使用的关注。NSJSONSerialization因此,您的 JSON 可能无效(如下所述,不应该有 a ;U应该是小写的u。这在下面的原始答案中有所提及。


这是 JSON 能够存储其数据的方式的一部分。您需要通过 JSON 解析器传递 JSON 字符串,然后才能正确提取字符串。

注意:您上面发布的JSON是无效的,末尾不应该有分号,并且U应该是小写的u;下面的例子有一个修改过的 JSON 字符串

NSString* str = @"{\"title\": \"It\\u2019s The End\"}";

NSError *error = nil;
NSData* data = [str dataUsingEncoding:NSUTF8StringEncoding];
NSDictionary *rootDictionary = [NSJSONSerialization JSONObjectWithData:data
                                                               options:0
                                                                 error:&error];
if (error) {
    // Handle an error in the parsing
}
else {
    NSString *title = [rootDictionary objectForKey:@"title"];
    NSLog(@"%@", title); //Prints "It’s The End"
}
于 2013-02-03T20:49:11.587 回答