碰到这样的错误:JSONValue failed. Error is: Unescaped control character [0x09]
。
也就是说这段
json
中有特殊字符的意思,解决办法呢,就是把这些字符去掉,
有如下解决方案:
Call this method with passing your output string like this
在利用json-framework来实现json解析的过程时,会出现"-JSONValue Failed. Error is : Unescaped control character"的错误。这种问题一般是由转义字符引起的,这些转义字符可能是因为web服务编写时造成的,也可能是其它原因导致的。解决这一问题的关键代码如下。
经过处理后的字符串再调用方法[jsonString JSONValue]来进行解析。
有如下解决方案:
-(NSString *)removeUnescapedCharacter:(NSString *)inputStr
{
NSCharacterSet *controlChars = [NSCharacterSet controlCharacterSet];
NSRange range = [inputStr rangeOfCharacterFromSet:controlChars];
if (range.location != NSNotFound)
{
NSMutableString *mutable = [NSMutableString stringWithString:inputStr];
while (range.location != NSNotFound)
{
[mutable deleteCharactersInRange:range];
range = [mutable rangeOfCharacterFromSet:controlChars];
}
return mutable;
}
return inputStr;
}
{
NSCharacterSet *controlChars = [NSCharacterSet controlCharacterSet];
NSRange range = [inputStr rangeOfCharacterFromSet:controlChars];
if (range.location != NSNotFound)
{
NSMutableString *mutable = [NSMutableString stringWithString:inputStr];
while (range.location != NSNotFound)
{
[mutable deleteCharactersInRange:range];
range = [mutable rangeOfCharacterFromSet:controlChars];
}
return mutable;
}
return inputStr;
}
Call this method with passing your output string like this
NSString *output = [NSString stringWithContentsOfURL:[NSURL URLWithString:@"yourUrlString"] encoding:NSUTF8StringEncoding error:nil];
output = [self removeUnescapedCharacter:output];
output = [self removeUnescapedCharacter:output];
在利用json-framework来实现json解析的过程时,会出现"-JSONValue Failed. Error is : Unescaped control character"的错误。这种问题一般是由转义字符引起的,这些转义字符可能是因为web服务编写时造成的,也可能是其它原因导致的。解决这一问题的关键代码如下。
- NSString *jsonString = [[request responseString] stringByReplacingOccurrencesOfString:@"\r" withString:@""];
- jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
- jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\s" withString:@""];
- jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\t" withString:@""];
- jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\v" withString:@""];
- jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\f" withString:@""];
- jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\b" withString:@""];
- jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\a" withString:@""];
- jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\e" withString:@""];
经过处理后的字符串再调用方法[jsonString JSONValue]来进行解析。