objective-c - iOS中使用NSSerialization把对象转为JSON字符串后,多出来反斜杠的问题
迷茫
迷茫 2017-04-22 08:59:59
[iOS讨论组]

代码

   NSDictionary *dic = @{@"url": @"http://..."};                                                                                                                                             
   NSLog(@"%@", dic);
   NSData *jsonData = [NSJSONSerialization dataWithJSONObject:dic options:NSJSONWritingPrettyPrinted error:nil];
   NSString *jsonString = [[NSString alloc] initWithData:jsonData encoding:NSUTF8StringEncoding];
   NSLog(@"%@", jsonString);

执行结果:

2014-06-12 14:44:19.427 main[64877:1322484] {                                                                                                                                              
     url = "http://...";                                                                                                                                                                    
 }                                                                                                                                                                                          
 2014-06-12 14:44:19.429 main[64877:1322484] {                                                                                                                                              
   "url" : "http:\/\/..."                                                                                                                                                                   
 }                         

转换后的json字符串中url地址被转义了 :(

使用字符串替换可以事后弥补:

[jsonString stringByReplacingOccurrencesOfString:@"\\" withString:@""];

如何事先预防呢?

PS:在和UIWebView进行js调用时需要不转义的json字符串,所以还是希望正面解决掉。

标题文字

迷茫
迷茫

业精于勤,荒于嬉;行成于思,毁于随。

全部回复(2)
PHP中文网

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

PHPz

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号