當前位置:成語大全網 - 漢語詞典 - 如何在swift中將字典或數組轉換成json字符串

如何在swift中將字典或數組轉換成json字符串

在這裏下載SwiftyJSON,或者直接在GitHub中克隆:GitClone/Lingoer/SwiftyJSON。Git基本用法Swifty JSON使用起來非常簡單:壹個典型的抓取Twitter的NSURLSessionTask API會生成dataFromNetwork:NSData!妳要做的第壹件事就是初始化JSONValue:?1 let JSON = JSON value(數據來自網絡)JSON value是壹種枚舉類型,表示典型的JSON數據結構。可以使用下標從原始JSONValue中檢索不同的值,像這樣:let userName:JSON value = JSON[0][" user "][" name "]註意userName還是壹個JSON值。那麽如何得到壹個字符串呢?您可以使用。string屬性來獲取由JSON數據表示的實際值。let username string = username . string!對於每個JSON類型,JSONValue都提供了壹個屬性來檢索它:varstring:String?varnumber:NSNumber?布爾:布爾?vararray:數組?varobject:字典?請註意,每個屬性都是可選值。這是因為JSON數據可以包含它定義的任何有效類型。因此,建議的方式是使用可選綁定來檢索值:iflet name = username . string {//thiscudavoidsofclasescheusedbytheunexpected data types } iflet name = username . number {//attribute asevalueoftusernameisnotanumber。它不執行。} .number產生壹個NSNumber的值,這個值在Swift中通常不是很有用。妳可以用。雙倍或者。Integer以獲取double值或int值。Ifletintvalue = numbervalue。整數{count+= intvalue}地獄之星地獄之星4個月前翻譯的,翻譯的不錯!Swift JSONValue中的枚舉實際上是壹個枚舉:enumjsonvalue { casej number(ns number)casejstring(string)casejbool(bool)casejnullcasejarray(array)。case job(dictionary)casejinvalid(nserror)}可以使用switch子句更有效地獲取值:let JSON = JSON value(JSON object)switch JSON[" user _ id "]{ case . jstring(let string value)。:letid=stringValue.toInt()case。JNumber(let number value):letid = number value . integer value default:println(" ooops!!!JSONDataisUnexpectedorBroken”)下標註意,在JSON中,數組結構被打包成array,這意味著數組中的每個元素都是JSONValue。即使從JSONValue中取數組,仍然可以使用基本屬性來獲取元素的值:iflet array = JSON[" key _ of _ array "]。array {ifletstring = array [0]。string {/the array[0]isstillajsonvalue!對於}}對象也是如此。因此,推薦的方法是在訪問每個數組和對象時使用JSONValue下標。iflet string = JSON[" key _ of _ array "][0]。String {}事實上,可以用下標訪問JSONValue,而不用擔心運行時錯誤導致的崩潰:?1 letusername = JSON[99999][" error _ key "]如果使用推薦的方法取數據,是安全的:ifletUsername = JSON[99999][" error _ key "][" name "]。string {/it ' s salve safe }。