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

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

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

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Swift

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

Q&A

解決済

1回答

761閲覧

Swiftで,Jsonの配列をデコードする方法について,

kmdkuk

総合スコア141

JSON

JSON(JavaScript Object Notation)は軽量なデータ記述言語の1つである。構文はJavaScriptをベースとしていますが、JavaScriptに限定されたものではなく、様々なソフトウェアやプログラミング言語間におけるデータの受け渡しが行えるように設計されています。

Swift

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

0グッド

0クリップ

投稿2020/10/11 00:07

編集2020/10/11 00:09

前提・実現したいこと

APIのリクエストなどで,以下のjsonを取得したとき

json

1{ 2 "users": [ 3 { 4 "id": 1, 5 "name": "hoge", 6 } 7 ] 8}

swift

1struct User: Codable { 2 var id: Int 3 var name: String 4}

上記Userモデルを用意し,

json

1do { 2 let users: [User] = try JSONDecoder().decode([User].self, from: jsonData) 3}

のような方法で,デコードすることが可能ですか?(変数jsonDataには上記のjsonが入ってるとします.)

可能であれば,実現するためのヒントがほしいです.(参考URL, 検索ワード, 実装例など)
実際のコードが無くても,こういうワードで検索したら出てきそうみたいなのでも助かります.

もちろん, Usersモデルを作成するとできるのかなと思いますが,Decode時の工夫でこれができるのであれば,そっちで解決したいなと思っての質問です.

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

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

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

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kmdkuk

2020/10/11 02:39

ありがとうございます.なるほどなるほど, とても参考になります! ただ,この記述量なら,users: [User]をもったUsersモデルみたいなのを作ってデコードして使ったほうがいい感じになりそうですね...
TsukubaDepot

2020/10/11 09:47

そうですね、その方がいいかもしれません。
kmdkuk

2020/10/11 13:28

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

回答1

0

自己解決

https://teratail.com/questions/296562#reply-418866

直近の回答だとこれがありますので参考になりますでしょうか。

by TsukubaDepotさんより

無駄に器用なことをやろうとすると記述量が増えて無駄に複雑になりそうだったので,
おとなしくusers: [User]を持った,Usersモデルを作成して対応しました.

投稿2020/10/11 13:28

kmdkuk

総合スコア141

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.39%

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

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

質問する

関連した質問