代码改变世界

iOS解析JSON字符串报错Error Domain=NSCocoaErrorDomain Code=3840 "Invalid escape sequence around character 586."

2016-08-17 12:39  Hi,David  阅读(3947)  评论(0编辑  收藏  举报

将服务器返回的JSON string转化成字典时报错:

Error Domain=NSCocoaErrorDomain Code=3840 "Invalid escape sequence around character 586."

仔细查找后在原来解析的基础上将"\"字符替换成""或"\\"后,解析成功。具体的解析代码如下:

- (NSDictionary *)parseJsonStringToNSDictionary:(NSString *)jsonString
{
    
    jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\r\n" withString:@""];
    jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\n" withString:@""];
    jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\t" withString:@""];
    jsonString = [jsonString stringByReplacingOccurrencesOfString:@"\\" withString:@""];
   
    NSError *error2=nil;
    NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:[jsonString dataUsingEncoding:NSUTF8StringEncoding] options:NSJSONReadingMutableContainers error:&error2];
    if ([dict isValid]) {
        return dict;
    }
    return nil;
}