2 我在开发中还遇到 这些字符( ! * ' ( ) :@ &= + $ , / ? % # [ ] )不能正常转化 .就会造成访问地址链接包含非法字符问题
解决办法:
在本类中新增一个下面的方法, 转义的时候调用这个方法来转义, 就解决了
这个方法的目的就是 对这写不能正常转义的字符,进行判断, 并加以正确的转义 *** 作!
前言:根据需求,我将一个数组类型(每一个数据都是字典类型)的数据转化为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了!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)