2011-02-26 52 views
2

我正在尝试将JSON解码为包含许多字符串对的NSDictionary。一些返回的字符串返回为&而不是&,并且一些非英文字符显示为它们的url编码值,而不是它们正确解码的值。我怎样才能解决这个问题?TouchJSON解码问题

NSString *strContent = [[NSString alloc] initWithBytes:[responseData bytes] length:[responseData length] encoding: NSUTF8StringEncoding]; 

//I cache the string here 

NSData *jsonData = [strContent dataUsingEncoding:NSUTF8StringEncoding]; 
NSError *error = nil; 
NSDictionary *dictionary = [[CJSONDeserializer deserializer] deserializeAsDictionary:jsonData error:&error]; 

回答

1

这是有效载荷,因为它到达。你必须在创建字典后处理这个问题。您可以及时做到这一点,当您需要处理数据或提前遍历字典并做一些工作将数据转换为所需的格式时。

以下的NSString方法可以派上用场进行反向转义URL编码: stringByReplacingPercentEscapesUsingEncoding

要UNESCAPE HTML实体看看this "objective-c-html-escape-unescape",它提供了一个干净的方式。