1

我正在获取 JSON 对象并将它们保存在 NSString 中,如下所示:

// fetch JSON from a Wiki article
NSError *error = nil;
NSString *responseString = [NSString stringWithContentsOfURL:myURL encoding:NSUTF8StringEncoding error:&error];

这通常有效,但我的 responseString 充满了\u####转义字符,我想要的是相应的 UTF8 字符,例如\u2640应该是.

解码my 中所有转义字符的最简单方法是什么responseString


更新: 我在某处读到我应该尝试使用NSNonLossyASCIIStringEncoding而不是获取 JSON NSUTF8StringEncoding,但这会导致错误,所以我根本没有得到responseString

那么错误是:

Error Domain=NSCocoaErrorDomain Code=261 "The operation couldn’t be completed. (Cocoa error 261.)"
4

1 回答 1

6

不要获取字符串。获取数据并转换正在使用NSJSONSerialization

NSData *data = [NSData dataWithContentsOfURL:url];
NSError *error;
id jsonObject = [NSJSONSerialization JSONObjectWithData:data options:0 error:&error];

NSJSONSerialization自动处理所有引用和转义的东西。

jsonObject将是NSArrayor NSDictionary,具体取决于输入数据。

备注dataWithContentsOfURL阻塞当前线程,直到请求完全完成(或超时)。如果这是一个问题,请考虑使用其中一种异步方法NSURLConnection来获取数据。)

于 2013-06-09T13:42:17.810 回答