LoginSignup
2
4

More than 3 years have passed since last update.

JSONデータをSwiftで扱う

Last updated at Posted at 2019-09-04

この記事は何?

JSON形式で記述されたデータをSwiftプログラミングで扱う方法です。

実行環境

macOS10.15 Catalina beta7
Xcode11 beta7

コンテキスト

Xcodeプロジェクトのリソースとして、JSON形式のファイル someData.json があることを前提にしています。

コード全体

プロジェクトのどこかに、次のように記述したSwiftファイルを配置しておくと、JSONデータをでコートした内容が割り当てられた定数 someData を呼び出すことができます。

JSONデータをコードで扱う
let someData: [SomeDecodableType] = load("someData.json")

func load<T: Decodable>(_ filename: String, as type: T.Type = T.self) -> T {
    let data: Data
    let decoder = JSONDecoder()

    guard let file = Bundle.main.url(forResource: filename, withExtension: nil) else {
            fatalError("No \(filename) in main bundle.")
    }

    data = try! Data(contentsOf: file)
    return try! decoder.decode(type, from: data)
}

someData

グローバル定数として someData を定義しています。

let someData: [SomeDecodableType] = load("someData.json")

: [SomeDecodableType] と明示することで、load() 関数内で扱う方が推論されます。
なお、SomeDecodableTypeCodable プロトコルに準拠している必要があります。
JSONファイルの構成と一致していることも注意してください。

2
4
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
2
4