前提・実現したいこと
タプル配列の中にタプル配列を入れる方法はありますでしょうか。
イメージは以下のようなものです。
都道府県
pref_code | pref_name |
---|---|
1 | 東京都 |
2 | 千葉県 |
3 | 埼玉県 |
地域
area_code | area_name |
---|---|
A | 新宿区 |
B | 渋谷区 |
C | 世田谷区 |
D | 荒川区 |
E | 市川市 |
都道府県と地域のリストがあって、
例えばPref1東京都 の場合はpref_code=1 とareaA~Dをセットで持ちたいというイメージです
上のデータはJSONで取得します。
都道府県と地域に共有の結合コードのようなものはないです。
試したこと
タプルの変数は以下が良いと思っているのですが、そこからどう入れていけばいいかわかっていない状況です。
// データ格納する var prefAreaList: [(pref_code: String, pref__name: String,Area:[(area_code: String, area_name: String)])] = []
JSON使うなら下記のようなモデルで管理した方が混乱少なそうな気がしました。
(Codable も使えるなら使いたい。)
struct Prefecture {
var prefectureCode: Int
var prefectureName: String
var areaList: [Area]
}
struct Area {
var areaCode: Int
var areaName: String
}
情報足りず、すみません。
Codableは以下を使います
struct PrefAreas: Codable {
let pref: [PrefArea]
}
struct PrefArea: Codable {
let pref: PrefCode
let areas: [AreaCode]
}
struct PrefCode: Codable {
let code: String
let value: String
}
struct AreaCode: Codable {
let code : String
let value : String
}
その後、以下でforで回して取りたいと考えています。
// JSONのパース
func perceCorp(data: Data) {
// JSONDecoderのインスタンス取得
let decoder = JSONDecoder()
// 受け取ったJSONデータをパース(解析)して格納
do {
let json = try decoder.decode(PrefAreas.self, from: data)
for roop in json.pref {
// ここで入れる
}
}catch{
print("エラーが出ました")
}
}
回答1件
あなたの回答
tips
プレビュー