IOS 原生解析JSON 问题

摘要:
服务器--WebService返回JSON数据IOS解析错误:

服务器----WebService

返回的是JSON数据 IOS解析报错:

Error Domain=NSCocoaErrorDomain Code=3840 "Unable to convert data to string around character 56." UserInfo={NSDebugDescription=Unable to convert data to string around character 56.} 

Code = 3840 错误

通过我将JSON写成文档数据本地解析成功,但在IOS请求解析一直报这个错误

两次结果不同,于是将请求来的JSON数据data打印出来,发现网路请求的JSON数据字节流和本地数据解析打印的data字节流不一样(注:我TMD一个一个对比出来的,前些数据一样,后面就不同了。你也对对看看你自己的是不是也是这个错误

原因分析:WebService返回的是GB2312编码数据。IOS解析要转换为UTF8编码格式的数据!

解决方案:将GB2312格式的数据转换为UTF8的

转换代码:

-(NSString *) gb2312toutf8:(NSData *) data{

    NSStringEncoding enc =CFStringConvertEncodingToNSStringEncoding(kCFStringEncodingGB_18030_2000); 

    NSString *retStr = [[NSString alloc] initWithData:data encoding:enc];

    return retStr;

}  //现将编码格式转换为NSString

调用上面的方法:

NSString *dataStr = [self   gb2312toutf8:data];

再将dataStr转换为UTF8编码的数据

NSdata *data = [dataStr   dataUsingEncoding:NSUTF8StringEncoding];

好了,可以解析data数据了 

免责声明:文章转载自《IOS 原生解析JSON 问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇那些H5用到的技术(1)——素材加载文件上传--基于Spring MVC框架+SmartUpload下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

MySQL服务器端&客户端常见错误

目录(?)[+] 客户端 服务器端 客户端 1.ERROR 2013 (HY000) at line 1: Lost connection to MySQL server during query 使用select 一个大表,query的过程中被主库kill掉会出现下面错误 2.ERROR 2006 (HY000): MySQL...

几种数据交换格式

 主要包括以下三种: · XML · JSON · YAML   XML     XML是当前编程中最为流行的数据交换格式,拥有跨平台、跨语言的优势。对于XML应该很熟悉,所以不再多做介绍。   JSON 什么是JSON? · JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式; · 它是基于JavaS...

InfluxDB 安装以及使用

InfluxDB InfluxDB简介:       InfluxDB 是一个开源分布式时序、事件和指标数据库。使用Go语言编写,无需外部依赖。其设计目标是实现分布式和水平伸缩扩展。        它有三大特性:        1. Time Series (时间序列):你可以使用与时间有关的相关函数(如最大,最小,求和等);        2. Metr...

WEB页获取串口数据

最近做一个B/S的项目,需要读取电子秤的值,之前一直没做过,也没有经验,于是在网上找到很多  大致分两种 使用ActiveX控件,JS调用MSCOMM32.dll的串口控件对串口进行控制 使用C#语言的控件对串口进行控制,然后使用JS+AJAX与C#进行交互获得串口数据 详情见  使用JS获得串口数据 http://blog.csdn.net/xuin...

『MXNet』第八弹_数据处理API_下_Image IO专题

想学习MXNet的同学建议看一看这位博主的博客,受益良多。 在本节中,我们将学习如何在MXNet中预处理和加载图像数据。 在MXNet中加载图像数据有4种方式。 使用 mx.image.imdecode 加载原始数据文件 使用在Python中实现的mx.img.ImageIter ,很方便自定义。 它可以从.rec(RecordIO)文件和原始图像文件读...

MySQL存储树形数据优化技笔记

1、树形结构应用场景 有时我们需要保存一些树形的数据,比如组织架构、话题讨论、知识管理、商品分类等,这些数据之间存在一种递归关系,很多开发人员想到的第一个解决方案往往是记录每个节点的父节点,例如以下的评论表。 CREATE TABLE comments (     comment_id int(10)  NOT NULL,     paren...