回答編集履歴

1

サンプルコードを追加

2021/12/06 11:45

投稿

退会済みユーザー
test CHANGED
@@ -23,3 +23,123 @@
23
23
 
24
24
 
25
25
  それから、`struct`の部分は可読性が悪いですので、入れ子にせずにフラットにした方が良いと思いました。
26
+
27
+
28
+
29
+
30
+
31
+ ---
32
+
33
+
34
+
35
+ 追記です。
36
+
37
+
38
+
39
+ 私の手元ではアプリIDを発行していないからか、ブラウザーから次のURLにアクセスするとエラーのJSONが返ってきます。
40
+
41
+
42
+
43
+ ```
44
+
45
+ https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?format=json&keyword=楽天&genreId=555086&applicationId=22b18d36ec9a7962a03724e281adb5d1
46
+
47
+ ```
48
+
49
+
50
+
51
+ ```json
52
+
53
+ {"error_description":"specify valid applicationId","error":"wrong_parameter"}
54
+
55
+ ```
56
+
57
+
58
+
59
+
60
+
61
+ APIテストフォームからテストするとサンプルのJSONが表示できるようです。
62
+
63
+
64
+
65
+ 楽天ウェブサービス(RAKUTEN WEBSERVICE) : APIテストフォーム
66
+
67
+ https://webservice.rakuten.co.jp/explorer/api/IchibaItem/Search/
68
+
69
+
70
+
71
+ ```
72
+
73
+ https://app.rakuten.co.jp/services/api/IchibaItem/Search/20170706?format=json&keyword=%E6%A5%BD%E5%A4%A9&genreId=555086&applicationId=67d6ed870f57df66c1d78f321dffa542
74
+
75
+ ```
76
+
77
+
78
+
79
+ ```json
80
+
81
+ {
82
+
83
+ "GenreInformation": [],
84
+
85
+ "Items": [
86
+
87
+ {
88
+
89
+ "Item": {
90
+
91
+ "affiliateRate": 15,
92
+
93
+ ```
94
+
95
+
96
+
97
+
98
+
99
+ サンプルのJSONをもとにまずはJSONDecoderを実装するところから始めてみてはいかがでしょうか。
100
+
101
+
102
+
103
+ https://developer.apple.com/documentation/foundation/jsondecoder
104
+
105
+
106
+
107
+ ```swift
108
+
109
+ struct GroceryProduct: Codable {
110
+
111
+ var name: String
112
+
113
+ var points: Int
114
+
115
+ var description: String?
116
+
117
+ }
118
+
119
+
120
+
121
+ let json = """
122
+
123
+ {
124
+
125
+ "name": "Durian",
126
+
127
+ "points": 600,
128
+
129
+ "description": "A fruit with a distinctive scent."
130
+
131
+ }
132
+
133
+ """.data(using: .utf8)!
134
+
135
+
136
+
137
+ let decoder = JSONDecoder()
138
+
139
+ let product = try decoder.decode(GroceryProduct.self, from: json)
140
+
141
+
142
+
143
+ print(product.name) // Prints "Durian"
144
+
145
+ ```