这两天也碰到这个问题了,最后弄清楚了,是接收到的字符串中有反斜杠 \,最后把\代替为\\\\才成功。
感觉NSJSONSerialization应该是将我们字符串中的两个反斜杠中的第一个解释为特殊字符,
也就是当我们定义
NSString * string_ = @"\"c\":\"\\\\\"";
NSLog(@"%@",string_) ; 输出 "c":"\\"
而如果通过NSJSONSerialization来解析string_
NSData* data = [string_ dataUsingEncoding:NSUTF8StringEncoding];
NSError* error=nil;
NSMutableDictionary* rtnDictionary=[NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers erro r:&error];
NSLog(@"%@",[rtnDictionary objectForKey:@"c"]) ; 输出 \