在解析JSON提要后处理NSArray中的Unicode字符

时间:2014-05-17 14:38:39

标签: ios objective-c json unicode

我用谷歌搜索到了死亡,无法找到正确的答案。也许我没有正确地表达这个问题。我有一个提供JSON提要的Web服务。我登录并验证我的用户名和密码,然后解析一些JSON提要并将其插入到NSArray中,如下所示。

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
self.urlData = [[NSMutableData alloc] init];
NSLog(@"DID RECEIVE RESPONSE");
}


- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData*)data
{
//NSLog(@"THE RAW DATA IS %@", data);
[self.urlData appendData:data];

//NSData
NSString *strRes = [[NSString alloc]initWithData:data encoding:NSUTF8StringEncoding];

//NSLog(@"LOGGING THE DATA STRING %@", strRes);

}


- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{

NSError *jsonParsingError = nil;



self.parsedJSONFeed = [NSJSONSerialization JSONObjectWithData:self.urlData options:0 error:&jsonParsingError];

self.titleList = [_parsedJSONFeed valueForKeyPath:@"response.page_items.title"];
self.dateList = [_parsedJSONFeed valueForKeyPath:@"response.page_items.date"];

//NSLog(@"RESPONSE: %@",[[NSString alloc]initWithData:urlData encoding:NSUTF8StringEncoding]);

if (jsonParsingError) {

    NSLog(@"JSON ERROR: %@", [jsonParsingError localizedDescription]);

} else {
    //NSLog(@"PARSED OBJECT %@", parsedObject);

    //NSLog(@"OBJECT: %@", [object class]);

}

[self.tableView reloadData];

}

所以现在“self.titleList”是一个包含文本的NSArray,但是unicode字符也从JSON提要中传递过来。有没有办法防止这种情况发生,或者在解析JSON提要之前/之后转换那些unicode字符?提前谢谢。

1 个答案:

答案 0 :(得分:0)

所以如果有人在这个页面上遇到同样的问题。实际上,它们是导致问题的HTML编码的unicode实体。

将此https://github.com/Koolistov/NSString-HTML类别导入项目并将NSString发送到相关方法。现在一切正常。