iOS中参数为数组时的POST请求


https://www.jianshu.com/p/5548c80665c2

最近项目中出现给后台传递数组的post请求, 结果发现OC中的数组传递过去后后台不能正确识别解析,不是正确的JSON格式. 瞬间凝固, 之前不都是这么传递OC对象的么? 对, 之前都是直接传递最简单的字典, 而非包含了数组对象, 所以后台那边可以正确接收.

解决办法:

将OC中的数组对象转化为JSON字符串传递给后台.

转换思路:

将某个对象先通过NSJSONSerialization转换成NSData对象,然后将这个NSData对象转换成字符串,这样得到的字符串就是JSON字符串。

OC项目中打印出来的数组格式:
 
项目中打印出来的数组格式.png

将OC对象转化为字符串:

 
屏幕快照 2017-10-23 下午5.49.47.png

转化之后的结果:

 
转化之后的结果.png

上述这样的JSON字符串在这里还是不能满足我的需要,上面的这个JSON字符串中会有空格、换行符、反斜杠,这些特殊字符串都是我们不需要的(这个需要从后台那里拦截我们的请求,解析url后可以看到这些我们不需要的字符),因此我们还需要对JSON字符串中进行处理(去掉那些我们不需要的字符)

下面给出最终的解决方案:

 
最终解决方法.png

该方法中主要就是添加了去除一些字符的方法。 注意:我们在去除字符串中的“\”反斜杠时,需要使用"\"。
最终打印的字符串:
[ {"index":0,"name":"OC0","id":"liangsen0"},{"index":1,"name":"OC1","id":"liangsen1"},{"index":2,"name":"OC2","id":"liangsen2"}]

我项目中在post请求前OC对象进行的转化

NSDictionary *dict = @{ @"userId": ZK_MyUID, @"questions":questionArrays }; // 转化为json格式 NSString *parameterstr = [NSString ObjectTojsonString:dict]; NSDictionary *parameters = @{ @"question":parameterstr }; 

以此记录!

参考文章:
http://www.voidcn.com/article/p-kdtkzwpp-hh.html

欢迎指正!

毛姆说的,阅读能为自己筑起一个避难所,几乎可以避开生命中所有的灾难。

欢迎关注我的微信公众号:LDYG2017, 或扫描下方二维码关注. 这里会分享我的读书笔记, 愿你我共同进步



作者:LDYG14
链接:https://www.jianshu.com/p/5548c80665c2
來源:简书
简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM