ios 请求数据中转义字符"的处理

ios 请求数据中转义字符"的处理,第1张

前言:根据需求,我将一个数组类型(每一个数据都是字典类型)的数据转化为json字符串的形式传给后台。我在需要的地方再请求下来这个数据。结果发现请求下来的数据被转义处理了,引号被转义成"。

1.传给后台的json字符串

  NSMutableArray *conArr = [[NSMutableArray alloc] initWithCapacity:0]

     for (DynmaticModel*model in self .dataArray)

     {

         if (model.content&&model.content.length>0) {

             NSDictionary*dic =@{@"type":model.type,@"content":model.content}

             [conArraddObject:dic]

         }

     }

    NSData *priceDta = [NSJSONSerialization dataWithJSONObject:conArr options:kNilOptions error: nil ]

    NSString *priceJson = [[NSString alloc] initWithData:priceDta  encoding:NSUTF8StringEncoding]

传给后台的priceJson字符串打印如下:

priceJson = [{"type":"1","content":"啦啦啦1"},{"type":"2","content":"http://fengwojiancai.oss-cn-beijing.aliyuncs.com/ios/20200908151508/2020090815150802.png"},{"type":"1","content":"啦啦啦2"}]

2.上传成功后从后台请求下来的字符串如下:

[{"type":"1","content":"啦啦啦1"},{"type":"2","content":"http:\/\/fengwojiancai.oss-cn-beijing.aliyuncs.com\/ios\/20200908151508\/2020090815150802.png"},{"type":"1","content":"啦啦啦2"}]

3.如何处理:

(1)将字符串中的"用引号替换

 NSString *str = [ text stringByReplacingOccurrencesOfString:@""" withString:@"\""]

这个str就是你传上去的json字符串。

(2)将json转化为数组

NSData *JSONData = [str dataUsingEncoding:NSUTF8StringEncoding]

        NSError*error = nil

        NSArray * arr = [NSJSONSerialization JSONObjectWithData:JSONData options:NSJSONReadingAllowFragments error:&error]

        for (NSDictionary *dic   in   arr) {

            NSLog(@"dic = %@",dic)

        }

这样就ok了!

转义字符。

在HTML转义符、java 转义符、xml 转义符、 oracle 转义符、sql 转义符 、sqlserver 转义符、php 转义符、asp 转义符、vb转义符、 javascript 转义符等等,还有网址中的百分号。

例如,HTML的&lt&gt&amp&quot&copy分别是<,>,&,",©的转义字符

XML只有5个转义符: &lt&gt&amp&quot&apos

拓展资料:

所有的ASCII码都可以用“\”加数字(一般是8进制数字)来表示。而C中定义了一些字母前加"\"来表示常见的那些不能显示的ASCII字符,如\0,\t,\n等,就称为转义字符,因为后面的字符,都不是它本来的ASCII字符意思了。

转义字符。

在HTML转义符、java 转义符、xml 转义符、 oracle 转义符、sql 转义符 、sqlserver 转义符php 转义符、asp 转义符、vb转义符、 javascript 转义符等等,还有网址中的百分号。

例如,HTML的&lt&gt&amp&quot&copy分别是<,>,&,",©的转义字符

XML只有5个转义符: &lt&gt&amp&quot&apos

扩展资料:

转义字符组成

1,转义字符串(Escape String),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。比如,要显示小于号(<),就可以写 &lt或者 <。

2,用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。提示:实体名称(Entity)是区分大小写的。

3,备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。

参考资料:

百度百科——转义字符


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9469614.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存