swift裏 怎麽把字典或者數組轉json字符串
下載在這兒下載SwiftyJSON,或者直接在GitHub克隆它:gitclone/lingoer/SwiftyJSON.git基礎用法SwiftyJSON的使用十分的簡單:典型的NSURLSessionTask抓取Twitter的API將產生dataFromNetwork:NSData!:妳首先應該做的事情是初始化JSONValue:?1letjson=JSONValue(dataFromNetwork)JSONValue是壹個枚舉類型表示壹個典型的JSON數據結構。妳能使用subscripts檢索不同的值從原始的JSONValue中,像這樣:letuserName:JSONValue=json[0]["user"]["name"]註意userName仍然是壹個JSONValue。那怎樣得到壹個字符串呢?妳能用.string屬性得到JSON數據表示的真正值。letuserNameString=userName.string!對每壹種JSON類型,JSONValue都提供了壹種屬性檢索它:varstring:String?varnumber:NSNumber?varbool:Bool?vararray:Array?varobject:Dictionary?註意每壹種屬性都是壹個Optional值。這是因為JSON數據能包含任何它定義的有效類型。因此,建議的方式是用Optional綁定檢索值:ifletname=userName.string{//Thiscouldavoidlotsofcrashescausedbytheunexpecteddatatypes}ifletname=userName.number{//AsthevalueoftheuserNameisNotanumber.Itwon'texecute.}.number屬性產生壹個NSNumber值,在Swift中這通常不是很有用。妳能用.double或者.integer得到壹個Double值或者壹個Int值。ifletintValue=numberValue.integer{count+=intValue}地獄星星地獄星星翻譯於4個月前0人頂頂翻譯的不錯哦!枚舉(Enumeration)在Swift中JSONValue實際上是壹個枚舉:enumJSONValue{caseJNumber(NSNumber)caseJString(String)caseJBool(Bool)caseJNullcaseJArray(Array)caseJObject(Dictionary)caseJInvalid(NSError)}妳可以使用壹個switch子句去更有效地獲取值:letjson=JSONValue(jsonObject)switchjson["user_id"]{case.JString(letstringValue):letid=stringValue.toInt()case.JNumber(letnumberValue):letid=numberValue.integerValuedefault:println("ooops!!!JSONDataisUnexpectedorBroken")下標(Subscripts)註意,在JSON中壹個數組結構被包裝成intoArray,它意味著數組裏的每壹個元素都是壹個JSONValue。甚至妳從JSONValue中取出壹個數組,妳仍然可以使用基本的屬性去獲取元素的值:ifletarray=json["key_of_array"].array{ifletstring=array[0].string{//Thearray[0]isstillaJSONValue!}}對象也是壹樣。因此,推薦的方式是訪問每壹個數組和對象時使用JSONValue的下標。ifletstring=json["key_of_array"][0].string{}實際上,妳可以用下標訪問壹個JSONValue,還不用擔心運行時錯誤導致的崩潰:?1letuserName=json[99999]["wrong_key"]如果妳使用推薦的方式去取數據,它是安全的:ifletuserName=json[99999]["wrong_key"]["name"].string{//It'salwayssafe}