博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
**iOS发JSON请求中字符串加转义,返回的JSON去转义
阅读量:6453 次
发布时间:2019-06-23

本文共 1499 字,大约阅读时间需要 4 分钟。

 

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

http://segmentfault.com/q/1010000000576646

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:@""]; --------------------------------------------------------------------------

今天帮朋友弄这个问题,json返回全都是带'\'的,于是要去掉这个反斜杠,但是OC里面的'\'是转义符,不能直接用@"\"之类的表示,一顿搜索之后,找到了OC对转义字符的表示方法,如下:

\a - Sound alert

\b - 退格
\f - Form feed
\n - 换行
\r - 回车
\t - 水平制表符
\v - 垂直制表符
\\ - 反斜杠
\" - 双引号
\' - 单引号

那么知道如何表示'\',去掉这个就是一个遍历的事了.代码如下:

1 NSMutableString *responseString = [NSMutableString stringWithString:[request responseString]];2     NSString *character = nil;3     for (int i = 0; i < responseString.length; i ++) {4         character = [responseString substringWithRange:NSMakeRange(i, 1)];5         if ([character isEqualToString:@"\\"])6             [responseString deleteCharactersInRange:NSMakeRange(i, 1)];7     }

当然 去除其他的转义符号同理.

 

转载地址:http://hlyzo.baihongyu.com/

你可能感兴趣的文章
InnoDB杂记
查看>>
【PHP基础】PHP与Web页面交互(表单处理)
查看>>
能用条件注释改善的IE兼容问题
查看>>
UVA 10692 Huge Mods(指数循环节)
查看>>
awardactivity/classfragment
查看>>
WPF and Silverlight 学习笔记(二十五):使用CollectionView实现对绑定数据的排序、筛选、分组...
查看>>
Linux Shell多命令执行
查看>>
【递推】月落乌啼算钱
查看>>
RCC BUCK变压器设计
查看>>
DAO层,Service层,Controller层、View层
查看>>
LeetCode刷题系列——Add Two Numbers
查看>>
python3.4.3 调用http接口 解析response xml后插入数据库
查看>>
使用VS2008,VS2010编译64位的应用程序
查看>>
关于java Integer大小比较的问题
查看>>
C++创建学生类练习
查看>>
C# 如何生成CHM帮助文件
查看>>
hdu1007 平面最近点对(暴力+双线程优化)
查看>>
栈和队列
查看>>
用VS2012或VS2013在win7下编写的程序在XP下运行就出现“不是有效的win32应用程序...
查看>>
重载运算符-operator
查看>>