iOS中使用NSSerialization把对象转为JSON字符串后,多出来反斜杠的问题

代码
NSDictionary*dic=@{@"url":@"http://..."};
NSLog(@"%@",dic);
NSData*jsonData=[NSJSONSerializationdataWithJSONObject:dicoptions:NSJSONWritingPrettyPrintederror:nil];
NSString*jsonString=[[NSStringalloc]initWithData:jsonDataencoding:NSUTF8StringEncoding];
NSLog(@"%@",jsonString);
执行结果:
2014-06-1214:44:19.427main[64877:1322484]{
url="http://...";
}
2014-06-1214:44:19.429main[64877:1322484]{
"url":"http:\/\/..."
}
转换后的json字符串中url地址被转义了:(
使用字符串替换可以事后弥补:
[jsonStringstringByReplacingOccurrencesOfString:@"\\"withString:@""];
如何事先预防呢?
PS:在和UIWebView进行js调用时需要不转义的json字符串,所以还是希望正面解决掉。
标题文字
MMTTMM
浏览 377回答 2
2回答

慕田峪7331174

这个不需要做处理的,直接用就是了。如果直接取出来显示在Label上,内部做过转义的。所以无需理会。可以参看我写的博客《IOS7利用系统自带库进行POSTJSON异步访问操作》

BIG阳

关于json标准文档中\是否应该转义成\/,我并没细究.但是很多开源实现decode的时候是不会将\/转回\的.因此我并不同意楼上说的观点,某些情况下必须要处理,但我不知道官方NSJSONSerialization的处理方法,所以改用开源的jsonkit绕开了这个问题
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript