**iOS发JSON请求中字符串加转义,返回的JSON去转义

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

--------------------------------------------------------------------------

iOS 去除JSON里的转义符

今天帮朋友弄这个问题,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     }

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

 
时间: 2024-10-08 10:10:05

**iOS发JSON请求中字符串加转义,返回的JSON去转义的相关文章

IOS 在http请求中使用cookie

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://rainbird.blog.51cto.com/211214/805173 一直以为ios的http请求这块很简单应该不支持记录,保存,或者使用cookie,可是想当然归想当然,真用的时候,真研究了一下发现还真强大.经过一番的研究简单说一下我的理解:当你访问一个网站时,不管你愿意或者不愿意,NSURLRequest都会帮你主动记录下来你访问的站点设置的cookie,而且很负责任的

校验字符串是否是JSON格式,将不规则展示的json格式的字符串进行规则展示(json格式化)

版权声明:本文为博主原创文章,未经博主允许不得转载. 目录(?)[+] [html] view plain copy var str = {"code": "","svcname": "","version": "","component": "","category": "","requestMs

Java后端发出post请求带参数并接收返回的json

核心代码: 参数格式: "key1=value1&key2=value2" /*** sendUrl    (远程请求的URL)* param    (远程请求参数)* JSONObject    (远程请求返回的JSON)*/private JSONObject sendPostUrl(String url, String param){ PrintWriter out = null; BufferedReader in = null; JSONObject jsonObje

requests:json请求中中文乱码处理

requests库中,在处理json格式的请求时调用的json.dumps方法参数ensure_ascii默认为True.表示序列化时对中文默认使用的ascii编码.如果想要显示中文,则将此参数的值改为False即可. 源码修改: 在requests源码的models.py文件中,找到prepare_body函数.找到如下图中的代码,在comlexjson.dumps(json)里加个参数ensure_ascii=False. 原文地址:https://www.cnblogs.com/benbe

requests(三):json请求中中文乱码处理

最近收到一个问题:json格式请求数据中有中文,导致服务端签名失败. 问题详情: 一位同学在发送json格式的post请求时,请求数据中有中文内容: {"inputCodes":["6932608700850"],"terminal":{"status":1,"channel":"D002","storeCode":"2107","pas

iOS开发:用DES对字符串加解密

参考http://www.cnblogs.com/janken/archive/2012/04/05/2432930.html,做了个小修改,实现PHP,JAVA,Objective-c加解密结果相同.原先Android版的客户端与服务端(PHP)通讯部分内容用DES加密,加密方法:http://www.pocketdigi.com/20121112/940.html直接拷贝原文的源码,发现结果不同,原因在于,我在java和php里用的IvParameterSpec是动态的,就是key转成byt

ios webservice编程:soap封装调用,返回xml,json解析

一.简介 webservice调用,包括soap请求与响应,返回(xml,json)解析. soap请求与响应:ios webservice+soap编程 xml,json解析:ios XML,JSON,数组解析并转换成NSMutableArray(List<class>) 二.项目 完整项目:点击下载 三.效果 soap请求与响应: xml,json解析:    

解决ASP.NET MVC(post数据)Json请求太大,无法反序列化(The JSON request was too large to be deserialized)

这个问题出现的场景并不是很多,当你向服务端异步(ajax)post数据非常大的情况下(比如做权限管理的时候给某个角色分配权限那么就可能会出现,我所遇到的就是该角色大概200个模块每个模块平均2个功能----那么发送到服务端action的将是一个有着400个对象的数组) 之前我们向服务端异步post数组可能需要使用 1 $.ajax({ 2 type: 'POST', 3 url: '/system/SaveRoleReModule', 4 dataType: "json", 5 con

C# 请求Web Api 接口,返回的json数据直接反序列化为实体类

需要的引用的dll类: Newtonsoft.Json.dll.System.Net.Http.dll.System.Net.Http.Formatting.dll Web Api接口为GET形式: public static CstyleCmappListRespDTO GetCstyleCmappList(string cstylename, string cmappgname) { CstyleCmappListRespDTO RespDTO = new CstyleCmappListRe