LoginSignup
0
1

Codableを簡単にアウトプットする

Last updated at Posted at 2023-02-03

はじめに

CodableとはEncode・Decodeの両方を兼ね備えたプロトコルである。
JsonEncoderクラスとJsonDecoderクラスを利用してCodableに準拠した型からJSONへのエンコードとJSONからCodableに準拠した型へのデコードを行う。

ソースコード

Swift
//Codableに準拠した型
struct SomeStruct: Codable {
    let value: Int
}

let someStruct = SomeStruct(value: 1)

//Somestruct型をJSONバイト列にエンコード
let jsonEncoder = JSONEncoder()
let encodedJsonData = try! jsonEncoder.encode(someStruct)

print(encodedJsonData) // 11 bytes >>> JSONバイト列になった
print(type(of: encodedJsonData)) //Data型

//出力結果を分かりやすく把握するため、Data型からString型へ変換
let encodedJsonString = String(data: encodedJsonData, encoding: .utf8)!
print(encodedJsonString) // {"value":1} と出力される → Somestruct(value: 1)がJSONにエンコードされた


//先ほどエンコードしたJSONバイト列(値)をSwiftの値へデコード(元に戻す)する
let jsonDecoder = JSONDecoder()

//ここでいうJSONバイト列とは先ほどエンコードしたencodedJsonDataのこと
//decode(Somestruct.self)と定義したのは、Somestructオブジェクトごと参照するため .selfと付ける
let decodedSomeStruct = try! jsonDecoder.decode(SomeStruct.self, from: encodedJsonData)
print(decodedSomeStruct) // Somestruct(value: 1)

}

おわりに

間違え等がございましたらぜひコメント欄でご指摘ください。

参考記事

Codable | Apple Developer Documentation

[増補改訂第3版]Swift実践入門 ── 直感的な文法と安全性を兼ね備えた言語 (WEB+DB PRESS plusシリーズ) 
↑引用元
石川 洋資 (著), 西山 勇世 (著)
発行者:片岡 巌
出版社:技術評論社
印刷/製本:日経印刷株式会社

開発環境

  • Xcode-13.4.1
  • Swift version 5.7
0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1