json数据解析出错应该怎么办?

json数据解析出错应该怎么办?,第1张

JSON数据解析错误处理办法如下:

-JSONValue failed. Error is: Unescaped control character [0x0D]

这个错误就是JSON解析的时候String 的时候出现转义字符。

对应用NSString 里的stringByReplacingOccurrencesOfString:@"\r"withString:@"" 取消掉转义字符就OK那!

NSString *json_string1=[json_string stringByReplacingOccurrencesOfString:@"\r"withString:@""]

或者是在线工具生成的代码,并不能保证百分百准确的。

500 错误应该是你get返回JSON 的时候没给GET 开权限吧

500错误一般是后台代码错误 在.NET MVC 里面 GET json 需要给JSON 额外加一个参数

1. 编码问题。

2. 如果data是有数据的,但是arr是nil,找到error:The operation couldn't be completed. (Cocoa error 3840.)

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]NSError *error = nilNSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)NSString *dataString = [[NSString alloc] initWithData:data encoding:enc]NSData *utf8Data = [dataString dataUsingEncoding:NSUTF8StringEncoding]NSArray *arr = [NSJSONSerialization JSONObjectWithData:utf8Data options:NSJSONReadingMutableContainers error:&error]

3. json非标准格式:(比如json数据存在\n \r \t 等制表符

NSData *data = [NSData dataWithContentsOfURL:[NSURL URLWithString:urlString]]

NSError *error = nilNSStringEncoding enc = CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000)NSString *dataString = [[NSString alloc] initWithData:data encoding:enc]//json数据当中没有 \n \r \t 等制表符,当后台给出有问题时,我们需要对json数据过滤 dataString = [dataString stringByReplacingOccurrencesOfString:@"\r\n" withString:@""] dataString = [dataString stringByReplacingOccurrencesOfString:@"\n" withString:@""] dataString = [dataString stringByReplacingOccurrencesOfString:@"\t" withString:@""]  NSData *utf8Data = [dataString dataUsingEncoding:NSUTF8StringEncoding]NSArray *arr = [NSJSONSerialization JSONObjectWithData:utf8Data options:NS


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存