今天做项目的时候解析一段从服务器上获取的json数据,不知道为什么总是解析不成功,而且前段时间还好好的,而且别的json数据解析也是成功的,把这段json放到网页上的json解析器也可以解析成功,当即心中千万头草泥马飘过。。。后来自己把错误打印了一下,发现是 Unescaped control character [0x09],也就是说这段json中有特殊字符的意思,解决办法呢,就是把这些字符去掉,在stackoverflow上看到了同样的问题,有大神发了解决办法,所以在这里共享给大家。
-(NSString *)removeUnescapedCharacter:(NSString *)inputStr
{
NSCharacterSet *controlChars = [NSCharacterSet controlCharacterSet];<span style="white-space:pre"> </span>//获取那些特殊字符
NSRange range = [inputStr rangeOfCharacterFromSet:controlChars];<span style="white-space:pre"> </span>//寻找字符串中有没有这些特殊字符
if (range.location != NSNotFound)
{
NSMutableString *mutable = [NSMutableString stringWithString:inputStr];
while (range.location != NSNotFound)
{
[mutable deleteCharactersInRange:range];<span style="white-space:pre"> </span>//去掉这些特殊字符
range = [mutable rangeOfCharacterFromSet:controlChars];
}
return mutable;
}
return inputStr;
}