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

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

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

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

Q&A

解決済

1回答

651閲覧

JSONDecorderのパース後の値の取扱い方法について教えて下さい。

bkyj5374

総合スコア18

Swift

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

0グッド

0クリップ

投稿2019/06/26 05:51

編集2019/06/26 07:58

独自のAPIで受け取ったデーターをtableviewcellに貼り付けるようと思っています。
APIからの受信はできているようなのですが、その値をどう扱えばいいかわかりません。

#####送られてくるJSONに相当する構造体は以下のように準備しました。

swift

1 // 2 struct JsonForm : Codable { 3 var ID : String 4 var NAME : String 5 var DOCUCODE : String 6 }

#####APIからの受け取りを以下のようにしてあります。

swift

1 // 2 URLSession.shared.dataTask(with: APIurl) { (data, response, error) in 3 4 // 5 if (error == nil) { 6 // API通信成功 7 print("API OK") 8 // 9 guard let data = data else { return } 10 11 print("dataをprint") 12 print(data) 13 print("dataの型") 14 print(type(of: data)) 15 16 // 17 do { 18 let json:[JsonForm] = try JSONDecoder().decode([JsonForm].self, from: data) 19 20 print("このjsonを表示") 21 print(json) //A 22 23 print("jsonの行数になりますか?") 24 print(json.count) //B 25 26 print("jsonの型の事ですか?") 27 print(type(of: json)) //C 28 29 //D:ゆくゆくはここでTableviewcellへ貼り付ける為に配列に格納する予定です。 30 31 } catch { 32 print(error) 33 34 } 35 36 } else { 37 // API通信失敗 38 print("API NG") 39 40 } 41 42 }.resume() 43

#####実行した結果をprintしてみました。
Aの部分
[TEST05.TableViewController.JsonForm(ID: "455102", NAME: "安倍 晋三", DOCUCODE: "STCOSN-218102-190626-074558-61"), TEST05.TableViewController.JsonForm(ID: "455102", NAME: "安倍 晋三", DOCUCODE: "STCOSN-218102-190625-100902-84"), TEST05.TableViewController.JsonForm(ID: "455102", NAME: "安倍 晋三", DOCUCODE: "STCOSN-218102-190625-101106-39")]

Bの部分
3

Cの部分
Array<JsonForm>

###質問内容
Aの部分で表示されているデーター形式は何形式なのでしょうか?(TEST05はプロジェクト名ですが、このようにアウトプットされる物なのでしょうか?)
Dの部分で配列に格納するつもりなのですが、この結果をどのように取り出して配列に格納すればいいいのかがわかりません。

何か根本的に間違っているのではないかと非常に不安です。
ご教授のほど宜しくお願い致します。

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

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

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

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

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

fuzzball

2019/06/26 06:11

コードは ``` で囲って下さい。
bkyj5374

2019/06/26 08:00

ご指摘ありがとうございます。 コード部分をくくりました。
guest

回答1

0

ベストアンサー

jsonはすでに配列です。

swift

1print(json[1].DOCUCODE) 2//=> STCOSN-218102-190625-100902-84

printによる出力も、以下のように整形すれば配列であることが分かるのではないでしょうか。

swift

1[ 2 TEST05.TableViewController.JsonForm(ID: "455102", NAME: "安倍 晋三", DOCUCODE: "STCOSN-218102-190626-074558-61"), 3 TEST05.TableViewController.JsonForm(ID: "455102", NAME: "安倍 晋三", DOCUCODE: "STCOSN-218102-190625-100902-84"), 4 TEST05.TableViewController.JsonForm(ID: "455102", NAME: "安倍 晋三", DOCUCODE: "STCOSN-218102-190625-101106-39") 5]

投稿2019/06/26 06:16

fuzzball

総合スコア16731

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

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

bkyj5374

2019/06/26 08:10

できました!!! print(json[1].DOCUCODE) 結果 STCOSN-218102-190625-100902-84 既に配列だったなんて、TEST05.TableViewController.JsonFormの部分に気を取られてアタフタしてました。 一人で作っているのですが誰にか相談して解決するって、なんか嬉しいです。 ありがとうございました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問