前言:根据需求,我将一个数组类型(每一个数据都是字典类型)的数据转化为json字符串的形式传给后台。我在需要的地方再请求下来这个数据。结果发现请求下来的数据被转义处理了,引号被转义成"。
1.传给后台的json字符串。
NSMutableArray *conArr = [[NSMutableArray alloc] initWithCapacity:0];
for(DynmaticModel*modelinself.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了!