質問失礼します。
JSONでデータを辞書型として取得する事は出来たので、
データの数だけfor文を回して全てのデータを配列に追加し、
一覧表示させる為のデータを作成したいです。
printをしてどういったデータが返ってくるか下記コードの様に試しながら調べていたのですが、
Value of type 'Dictionary<String, Any>.Element' (aka '(key: String, value: Any)') has no subscripts
というエラーが表示されてしまいます。
Swift
1 session.dataTask(with: request) { (data, response, error) in 2 3 if error == nil, let data = data, let response = response { 4//データを取得する 5 let jsonData = try! JSONSerialization.jsonObject(with: data, options: JSONSerialization.ReadingOptions.allowFragments) as! [String: [String:Any]] 6 print(jsonData) ←コンソールに①の形式で表示される 7//hitsの中身を全て取得したい 8 let dicData:[String:Any] = jsonData["hits"] ?? ["":""] 9 print(productsData) ←コンソールに②の形式で表示される 10//取得した中身の数だけ各項目の値を取得したい 11 for data in dicData{ 12 print(data) ←コンソールに③の形式で表示される 13 let data1 = poroduct["data1"]←上記エラーが表示される 14 }
JSON
1① 2["hits": ["data1": いち, "data2": に, "data3":さん]] 3② 4["data1": いち, "data2": に, "data3": さん] 5③ 6(key: "data1", value: いち) 7(key: "data2", value: に) 8(key: "data3", value: さん)
勉強不足で申し訳ないのですが、
(key: "data1", value: いち)と["data1":いち]で表示される際の辞書型の違いが分かりません。
また、「hits」というkeyで複数件ヒットした際、
["hits": ["data1": いち, "data2": に, "data3":さん],["data4"]:よん, "data5": ご, "data6":ろく]]
の様にデータを受け取ると思うのですが、そうやってデータが入り組んでいる場合にどう取得すれば良いのでしょうか。
辞書型の型変換で何故エラーになるのかや、どう変換すればいいのかが調べても分からずにいます。
どなたかご教授いただけますと嬉しいです。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/12 04:40
2020/05/12 12:48
2020/05/12 13:08
退会済みユーザー
2020/05/12 13:12
2020/05/12 13:35
2020/05/13 02:22