https://www.jianshu.com/p/5548c80665c2
最近項目中出現給后台傳遞數組的post請求, 結果發現OC中的數組傳遞過去后后台不能正確識別解析,不是正確的JSON格式. 瞬間凝固, 之前不都是這么傳遞OC對象的么? 對, 之前都是直接傳遞最簡單的字典, 而非包含了數組對象, 所以后台那邊可以正確接收.
解決辦法:
將OC中的數組對象轉化為JSON字符串傳遞給后台.
轉換思路:
將某個對象先通過NSJSONSerialization轉換成NSData對象,然后將這個NSData對象轉換成字符串,這樣得到的字符串就是JSON字符串。
OC項目中打印出來的數組格式:

將OC對象轉化為字符串:

轉化之后的結果:

上述這樣的JSON字符串在這里還是不能滿足我的需要,上面的這個JSON字符串中會有空格、換行符、反斜杠,這些特殊字符串都是我們不需要的(這個需要從后台那里攔截我們的請求,解析url后可以看到這些我們不需要的字符),因此我們還需要對JSON字符串中進行處理(去掉那些我們不需要的字符)
下面給出最終的解決方案:

該方法中主要就是添加了去除一些字符的方法。 注意:我們在去除字符串中的“\”反斜杠時,需要使用"\"。
最終打印的字符串:
[ {"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
來源:簡書
簡書著作權歸作者所有,任何形式的轉載都請聯系作者獲得授權並注明出處。