Apple 公式リファレンスから。サンプルも抜粋。
func encode<T>(_ value: T) throws -> Data where T : Encodable
func decode<T>(
_ type: T.Type,
from data: Data
) throws -> T where T : Decodable
👉 encode(_:) | Apple Developer Documentation
👉 decode(_:from:) | Apple Developer Documentation
struct GroceryProduct: Codable {
var name: String
var points: Int
var description: String?
}
let pear = GroceryProduct(name: "Pear", points: 250, description: "A ripe pear.")
let encoder = JSONEncoder()
encoder.outputFormatting = .prettyPrinted
let data = try encoder.encode(pear)
print(String(data: data, encoding: .utf8)!)
/*
{
"name" : "Pear",
"points" : 250,
"description" : "A ripe pear."
}
*/
struct GroceryProduct: Codable {
var name: String
var points: Int
var description: String?
}
let json = """
{
"name": "Durian",
"points": 600,
"description": "A fruit with a distinctive scent."
}
""".data(using: .utf8)!
let decoder = JSONDecoder()
let product = try decoder.decode(GroceryProduct.self, from: json)
print(product.name)
// Prints "Durian"
👉 JSONEncoder | Apple Developer Documentation
👉 JSONDecoder | Apple Developer Documentation
Codable
というのは、Encodable
+ Decodable
のこと。
typealias Codable = Decodable & Encodable
👉 Codable | Apple Developer Documentation
🧑🏻💻 まとめ
まとめると以下のイメージ。
Data と String の相互変換は以下。
【Swift】String と Data の変換
👉 https://t.co/ORzWMGgSTA#プログラミング #Swift— chanzmao (@maochanz) June 4, 2024
さらに、キー名のカスタムをしたい場合は以下から。
👉 Encoding and Decoding Custom Types | Apple Developer Documentation
【Swift】URLSession で JSONを POST して JSON のレスポンスを受け取る
👉 https://t.co/9CJAR9j1q8#Swift #プログラミング— chanzmao (@maochanz) June 15, 2024