2016-08-04 9 views
-1

を変換中にオプション値をアンラッピングしていましたが、致命的なエラーが発生します。が予期せずnilが見つかりました.Json StringをDictionaryに変換しようとしているときにJSON Array

self.res = Jsn.convertStringToDictionary(self.sub)! 

副= [{ "CityId":6、 "CityName": "アンカラ"}、{ "CityId":34、 "CityName": "イスタンブール"}]

AND関数であります:

func convertStringToDictionary(text: String) -> [String:AnyObject]? { 
    if let data = text.dataUsingEncoding(NSUTF8StringEncoding) { 
     do { 
      return try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? [String:AnyObject] 
     } catch { 
      print(error) 
     } 
    } 
    return nil 
} 

問題を手伝ってもらえますか?前もって感謝します!

+0

を使用してみてください。 –

+0

この関数はhttp://stackoverflow.com/a/30480777/2227743にあり、 'convertStringToDictionary'という名前です。あなたのJSONは辞書の*配列*です... – Moritz

+0

また、この関数は、理由*のオプション*を返します。オプションを処理する代わりに呼び出し元側で結果を強制的に展開すると、アプリケーションがクラッシュします。 – Moritz

答えて

0

[String:AnyObject]の代わりに[[String:AnyObject]]に変換する必要があります。これは辞書の配列です。

は、サーバから来ている、あなたの実際の応答を表示

return try NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions()) as? [[String:AnyObject]] 
+0

ありがとうございました! – slytrkmn

関連する問題