このコード行を使用するとアプリケーションがクラッシュします。問題をキャストする辞書を配列に
self.cartProducts = responceDictionary!["result"] as! [AnyObject]
responceDictionary
IがAnyObject
として、配列に格納する必要がJSONデータです。
誰かが正しい方向に向けるでしょうか?
このコード行を使用するとアプリケーションがクラッシュします。問題をキャストする辞書を配列に
self.cartProducts = responceDictionary!["result"] as! [AnyObject]
responceDictionary
IがAnyObject
として、配列に格納する必要がJSONデータです。
誰かが正しい方向に向けるでしょうか?
キーresult
の値が最も可能性の高い辞書です。
リモートソースからのデータは、感嘆符を避け、安全にoptionalsをアンラップ受信中:
if let responce = responceDictionary, let result = responce["result"] as? [String:Any] {
print(result)
// go on extracting data from result
]
[String:Any]とAnyObjectの間に衝突が生じるので、どのようにcartProductsに 'result'を割り当てますか? – Minimoore26
'cartProducts'が配列の場合、' result'を代入することはできません。 JSONを読み、 'result'辞書から目的の配列を抽出する必要があります – vadian
私は分かりませんか? 'result'辞書のすべてのデータが必要です – Minimoore26
これを試してみてください:コメントで述べたように
guard let cartProducts = responceDictionary?["result"] as? [AnyObject] else { return }
self.cartProducts = cartProducts
をあなたは配列に辞書をキャストすることはできません、種類は関係ありません。オブジェクトが辞書であるとされている場合、それを辞書にキャストするのはどうですか?あなたの質問は[this one](https://stackoverflow.com/questions/43803668/parsing-json-returns-nil)に関連していますか? – vadian
回答の形式を追加してください。あなたがそれを配列にキャストすることはできない辞書だと@vadianは言っています。 – piyuj
@vadian私は 'result'は配列だと信じています。 –