質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
87.20%
Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

解決済

Swift JSONDecoder()にてネストしたJSONデータを取得したい。

ataru2222
ataru2222

総合スコア230

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています

1回答

0評価

0クリップ

167閲覧

投稿2022/06/28 13:20

実現したいこと

Swift JSONDecoder()にてネストしたJSONデータを取得したい。

発生している問題・エラーメッセージ

こちらのサイトを参考に
https://qiita.com/kaba/items/6b5d7a1dc29831c6b36f

ネストしたJSONデータを取得して、構造体Flickrの中に格納したいのですが、下記のコードではnilになってしまいます。

print(jsonObject) のところでnilになる
その前の行のdataでpo dataを打つと何かのデータが取れております。

該当のソースコード

Swift

struct Flickr: Decodable { var server: String var id: String var secret: String var owner: String var title: String } override func viewDidLoad() { super.viewDidLoad() let baseURL = "https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=7f722a8b5deabe99d5dc7f50cfc6c364&text=cat&sort=interestingness-desc&per_page=12&license=4&extras=owner_name%2Clicense&format=json&nojsoncallback=1" request(url: baseURL) } func request(url: String) { AF.request(url, method: .get) .responseJSON{(respons) in switch respons.result { //データの取得に成功した場合 case .success: guard let data = respons.data else { return } let jsonObject = try? JSONDecoder().decode([Flickr].self, from: data) print(jsonObject) case .failure(_): print(".failureブロックに入りました") self.strAPIpath = "errorURL" } } }

試したこと

複数のサイトを見ながら、打ち込んでみたのですが、こちらのURLの先がネスト状態というものなのか?
そこらへんから経験不足でよくわからず、困っております。

JSONデータURL
https://api.flickr.com/services/rest/?method=flickr.photos.search&api_key=7f722a8b5deabe99d5dc7f50cfc6c364&text=cat&sort=interestingness-desc&per_page=12&license=4&extras=owner_name%2Clicense&format=json&nojsoncallback=1

件数の項目があるのでこちらを配列形式のように取得したいのですが、こちらのサイトでJSONデータを正しく取得するにはどのように書いたら良いでしょうか?
詳しい方いらっしゃいましたらご教授ください。
宜しくお願いいたします。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

良い質問の評価を上げる

以下のような質問は評価を上げましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

  • プログラミングに関係のない質問
  • やってほしいことだけを記載した丸投げの質問
  • 問題・課題が含まれていない質問
  • 意図的に内容が抹消された質問
  • 過去に投稿した質問と同じ内容の質問
  • 広告と受け取られるような投稿

評価を下げると、トップページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

まだ回答がついていません

会員登録して回答してみよう

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
87.20%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

Swift

Swiftは、アップルのiOSおよびOS Xのためのプログラミング言語で、Objective-CやObjective-C++と共存することが意図されています