2016-10-06 37 views
0

我有一個看起來像JSON的字符串,我需要將它轉換爲對象。該字符串是如何將字符串轉換爲JSON,以便我可以將其解析爲對象

[{"name":"Samuro","title":"The Blademaster","role":{"name":"Assassin","slug":"assassin"},"type":{"name":"Melee","slug":"melee"},"stats":{"damage":0,"utility":0,"survivability":0,"complexity":0},"slug":"samuro","franchise":"warcraft","analyticsName":"Samuro","trait":{},"skins":[],"abilities":[],"heroicAbilities":[],"revealed":true,"inFreeHeroRotation":false,"freeRotationMinLevel":0},{"name":"Zarya","title":"Defender of Russia","role":{"name":"Warrior","slug":"warrior"},"type":{"name":"Ranged","slug":"ranged"},"stats":{"damage":0,"utility":0,"survivability":0,"complexity":0},"slug":"zarya","franchise":"overwatch","analyticsName":"Zarya","trait":{},"skins":[],"abilities":[],"heroicAbilities":[],"revealed":true,"inFreeHeroRotation":false,"freeRotationMinLevel":0}] 

當我把字符串轉換成JSON格式,如一個在https://jsonformatter.curiousconcept.com它出來完美的格式化像它已經以JSON格式。然而,當我嘗試

for element in jsonString { 
      let jsonHero = JsonHero(fromDictionary: element as! [String: AnyObject]) 
      testingArray.append(jsonHero) 
     } 

,並把它當作JSON數據,我會得到

json = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments) as! [[String: AnyObject]] 

這顯然是行不通的,因爲字符串沒有的元素。

我試過使用擴展名將我的字符串轉換爲json,但沒有奏效。我是編程新手,所以我不知道擴展是壞的還是那些不是我需要做的。

我該如何讓我的字符串像json數據一樣工作(如果多數民衆贊成什麼它叫)所以我可以把它放入對象?

+0

簡單的'String'轉換爲'NSData'然後用''NSJSONSerialization'得到字典的數組。 – rmaddy

+0

@rmaddy如果你發佈我解決的部分,我可以給你信用。謝謝! – Apple

+0

而不是使用解決方案更新您的問題,而是將其作爲答案發布。發佈你自己的答案很好。 – rmaddy

回答

0

字符串轉換爲NSData的

let responseData: NSData = jsonString.dataUsingEncoding(NSUTF8StringEncoding)! 

NS系列化

var dummyJson: [[String: AnyObject]]! 
     do { 
      dummyJson = try NSJSONSerialization.JSONObjectWithData(responseData, options: NSJSONReadingOptions.AllowFragments) as! [[String: AnyObject]] 
     } 
     catch { 
      //handle error 
     } 
相關問題