ios – NSJSONSerialization – 无法将数据转换为字符串

ios – NSJSONSerialization – 无法将数据转换为字符串,第1张

概述我在NS JSONSerialization中遇到问题,从Met Office Datapoint API中读取JSON. 我收到以下错误 Error Domain=NSCocoaErrorDomain Code=3840 "The operation couldn’t be completed. (Cocoa error 3840.)" (Unable to convert data to st 我在NS JSONSerialization中遇到问题,从Met Office Datapoint API中读取JsON.

我收到以下错误

Error Domain=NSCocoaErrorDomain Code=3840 "The operation Couldn’t be completed. (Cocoa error 3840.)" (Unable to convert data to string around character 58208.

我已经检查,认为这是根据人物位置的违规行

{"ID":"353556","latitude":"57.1893","longitude":"-5.0929","name":"Sóil Chaorainn"}

根据我尝试的几个验证器,JsON本身似乎是有效的,我也期望它也来自一个大型组织,如Met Office.

NSJsONSerialization不应该像“ó”这样的字符正常工作吗?

如果不是如何改变编码类型来处理这个?

提前谢谢了

解决方法 Met Office数据点发送回ISO-8859-1中的数据,该数据不是NSJsONSerialization支持的数据格式之一.

为了使其工作,首先使用NSISOlatin1StringEnCoding从URL内容创建一个字符串,然后创建要在NSJF中使用NSDataF8编码的NSJsONSerialization中的NSData.

以下工作来创建相应的Json对象

NSError *error;Nsstring *string = [Nsstring stringWithContentsOfURL:[NSURL URLWithString:@"http://datapoint.metoffice.gov.uk/public/data/val/wxfcs/all/Json/siteList?key=<YOUR_API_KEY"] enCoding:NSISOlatin1StringEnCoding error:&error];NSData *metofficeData = [string dataUsingEnCoding:NSUTF8StringEnCoding];ID JsonObject = [NSJsONSerialization JsONObjectWithData:metofficeData options:kNilOptions error:&error];if (error) {    //Error handling} else {    //use your Json object    NSDictionary *locations = [JsonObject objectForKey:@"Locations"];    NSArray *location = [locations objectForKey:@"Location"];    NSLog(@"Received %d locations from the DataPoint",[location count]);}
总结

以上是内存溢出为你收集整理的ios – NSJSONSerialization – 无法将数据转换为字符串全部内容,希望文章能够帮你解决ios – NSJSONSerialization – 无法将数据转换为字符串所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

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

原文地址: http://outofmemory.cn/web/1097996.html

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

发表评论

登录后才能评论

评论列表(0条)

保存