SwiftUI/JSON/読込/階層構造のある場合

JSON

SwiftUI にて、階層構造のあるJSONデータを読み込むサンプルを掲載します。

struct ContentView: View {
    struct User: Codable {
        let scode: String
        let name: String
        let juusho: Address
    }
    struct Address: Codable {
        let code: String
        let detail1: String
        let detail2: String
        let detail3: String
    }
    
    var body: some View {
        
        Button("Decode JSON") {
            let input = """
            {
                "scode": "U5088",
                "name": "相馬 准司",
                "juusho": {
                    "code": "134-0088",
                    "detail1": "東京都",
                    "detail2": "江戸川区",
                    "detail3": "西葛西7-23-14-807"
                }
            }
            """
            let data = Data(input.utf8)
            let decoder = JSONDecoder()
            if let user = try? decoder.decode(User.self, from: data) {
                print(user.scode)
                print(user.name)
                print(user.juusho.code)
                print(user.juusho.detail1)
                print(user.juusho.detail2)
                print(user.juusho.detail3)
            }
        }
    }
}

このプログラムを実行した場合の実行結果
(Debug Areaに print結果が出力される)

引用元:Working with hierarchical Codable data

タイトルとURLをコピーしました