iOS Developer

服务器返回JSON数据问题

2016-07-10  本文已影响1147人  然也然也

从事开发时间不短了,但绝对算不上是什么“技术大牛”。

在工作中去沉淀自己,是我最快乐的事情,每当搞懂一个问题的原因,并把这个问题的解决方法记录下来,这就是成长的过程。

闲话少说,切入正题:

在之前的开发过程中,请求数据都是很简单方便的,但是这两天我在开发过程中遇到了一个让我很蛋疼的问题:请求数据能成功,也能拿到二进制数据,在使用NSJSONSerialization这个类转换的时候,在控制台却输出转换不成功,打印Log为:Error Domain=NSCocoaErrorDomain Code=3840 "No string key for value in object around character 825." UserInfo={NSDebugDescription=No string key for value in object around character 825.}
这里的大概意思就是没有对应的键,想到的就是返回的数据格式有问题,后来稍微问了一下同事,他的回答是:“没问题,安卓就可以正常使用”,好吧我不懂安卓,没有发言权,他说什么就是什么喽!(你们说我脾气是不是挺好...haha)

我又看了看自己的代码,确定代码没问题。那就再看是不是我的解析方式有问题,换了好多种解析方式,结果无疑还是不行,这里蛋疼的调试了一下午了已经,身心疲惫啊~~

第二天休息,没事做,但是这个事情一直都有影响我,我就搬出来电脑,继续找原因,也不是太专心的找,白天事情多,重点来了:晚上没事做,心也比较静,就接着看,我想着该试的方法我都有试过,结果一直就是解决不了问题,我就把数据抠出来,一点一点的看,我类个擦,这一看,我还真的发现了些许问题,正常的数据格式是{"userInfo":{"userName":"程序猿","sex":"男"}},

结果呢:我发现后台返回的数据格式是{"userInfo":{userName:"程序猿","sex":"男"}}这样的,朋友们这两个是有区别的,而且是很大的区别,只不过有点不易发现而已

键userName   正常的应该是带有双引号的"userName"。错误的是userName 直接这样,我在这里想吐槽一下后台,你少两个符号能省多少时间啊,我可是为了这两个引号折腾了好久,坑了又坑。。。。

到了这里已经接近尾声了;

我在数据了加上了引号之后在测试,尼玛。竟然好了...       就是这么简单

这时候再返回去,从二进制转换为dictionar,没有一点犹豫的就成功了。

好吧,这件小闹剧就这样收场了


下面是把数据抠出来自定义为字符串的对代码格式

这里的杠杠“\”是必须的

不错,这里是要加\的,不加的话是不行的,因为会跟NSString的定义格式@""产生冲突,不信邪的小伙伴可以尝试一下,自己操作过,才会记得更深刻。。


如有错误的地方,请联系本人,不吝赐教      806958063@qq.com

在开发的过程中,都会遇见自己没见过的Log输出(这里是不包括做了N久的程序大牛的),记录下来自己的开发过程,这是我第一次在《简书》写这样的不算文章的小片段,谨以此作为自己的开发日记,下次再碰到同样的问题,我相信都不是问题了!!!

在生活中,每个人都有属于自己的烦恼,小BUG,不要慌张,总会有解决的办法的。对生活充满激情

生活不止眼前的苟且,还有诗和远方----


各位晚安!

                                                      Good evening!

I  Love  You  Code Man!

 

上一篇下一篇

猜你喜欢

热点阅读