在使用NSJSONSerialization API轉(zhuǎn)換NSData([JSONStr dataUsingEncdoing:NSUTF8ENCODING]),通常只要JSONStr 字符串格式正確,我們就可以輕松轉(zhuǎn)換格式,NSString to NSDictionary.
如果不確定自己的JSON字符串是否正確陷谱,可以嘗試google "json在線解析器"
常在河邊走,哪有不濕鞋
筆者就遇到個蛋疼的問題:在轉(zhuǎn)JSON, 拋出了"Garbage at End"錯誤百揭,中文意思大概是“末尾有垃圾”,意思是含有JSON轉(zhuǎn)換無法識別的字符蜓席。(JSON格式驗證是沒問題的)
經(jīng)過筆者一陣折騰(stackoverflow),最終還是找到了解決方案器一,原因是 因為我的字符串是加密過的,導(dǎo)致解密后的數(shù)據(jù)加了一些 “操作符”
http://baike.baidu.com/view/1112575.htm
ACSII編碼中有個32個操作符
解決方案:
1.如果是data,先將DATA裝成String,采用NSUTF8StringEncoding(系統(tǒng)提供的枚舉貌似都可以厨内,因為不是中文)祈秕,然后看第二步
2.如果是NSString
yourStr =[yourStr stringByTrimmingCharactersInSet:[NSCharacterSet controlCharacterSet]];
這時候所有控制符都會被替換成空字符渺贤。
接著將yourStr轉(zhuǎn)化成NSData(注意跟你第一步你所用的編碼格式需要相同),然后再進(jìn)行NSJSONSerialization 操作!
--EOF--
若無特別說明踢步,本站文章均為原創(chuàng)癣亚,轉(zhuǎn)載請保留鏈接丑掺,謝謝