GitBucket
Pull requests
Issues
Snippets
Sign in
cs2023
/
Oxydol.swift
Fork
0
Created at Wed Nov 29 14:14:23 JST 2023
Download ZIP
HTTP
Embed
Embed this snippet in your website.
HTTP
Clone with Git using the repository's web address.
Code
Revision
Forks
takane
revised this
on 29 Nov 2023
No changes.
9e3d748
takane
revised this
on 29 Nov 2023
e494051
Oxydol.swift
import SwiftUI class Oxydol : Codable { var name: String var kind: String var formula: String var images: [String] enum CodingKeys: String, CodingKey { case name, kind, formula, images } init() { self.name = "oxydol" self.kind = "物質" self.formula = "H2O2" self.images = ["oxydol"] } required convenience init(from decoder: Decoder) throws { self.init() let values = try decoder.container(keyedBy: CodingKeys.self) self.name = try values.decode(String.self, forKey: .name) self.kind = try values.decode(String.self, forKey: .kind) self.formula = try values.decode(String.self, forKey: .formula) self.images = try values.decode([String].self, forKey: .images) } func encode(to encoder: Encoder) throws { var container = encoder.container(keyedBy: CodingKeys.self) try container.encode(name, forKey: .name) try container.encode(kind, forKey: .kind) try container.encode(formula, forKey: .formula) try container.encode(images, forKey: .images) } } let encoder = JSONEncoder() let value = Oxydol() if let data = try? encoder.encode(value), let str = String(data:data, encoding:.utf8) { print(str) } print("------") let data = "{\"kind\":\"物質2\",\"name\":\"oxydol2\",\"images\":[\"oxydol\",\"oxydol2\"],\"formula\":\"H2O2\"}".data(using:.utf8)! let decoder = JSONDecoder() if let dvalue = try? decoder.decode(Oxydol.self, from:data) { print("name= \(dvalue.name)") print("kind= \(dvalue.kind)") print("formula= \(dvalue.formula)") print("images[1]= \(dvalue.images[1])") }