site-icon Hong Cheung

SwiftyJSON で JSON をパースする方法

Jan 28, 2024
Programming swiftuixcodeswift
3 分
491 語
SwiftyJSON で JSON をパースする方法

SwiftyJSON とは?

SwiftyJSON は、Xcode プロジェクトで JSON ファイルをより簡単にデコードするためのサードパーティ製ライブラリです。

なぜ必要なのか?

JSON をエンコード・デコードする際には、あらかじめ定義された型を使うのがベストプラクティスとされています。しかし、組み込みの JSONDecoder を使う場合の欠点は、動的な JSON を扱うのが面倒だということです。仮にうまくやり遂げられたとしても、正しく処理するためだけに多くの手間がかかり、決して理想的とは言えません。

動的な JSON の例

次のような JSON があるとします:

{
"data": {
"variable_1": "some text"
}
}

ここで variable_1 というキーが動的に変わる場合、data.title のように単純にデータをデコードすることはできません。次は data.description だったらどうでしょう?

JavaScript なら、これを簡単に実現できます:

let dynamicKey = 'variable'
const json = JSON.parse(JSONObejct)
console.log(json.data[`${dynamicKey}_1`])

data の後ろの [] に動的な文字列を入れるだけで値にアクセスできます。しかし、Swift ではこれができません。

だからこそ SwiftyJSON の出番です。

SwiftyJSON を使って JSON をパースする

SwiftyJSON の助けを借りれば、次のように書けます:

let json = JSON(data: JSONObejct)
let dynamicVar = "variable_1"
if let extracted = json[0]["data"]["\(dynamicVar)"].string { // It's wrapped with Optional automatically
//Now you got your value inside data.variable_1, just change your variable value for dynamicVar as needed.
print(extracted) // some text
}

これは JavaScript で行うのとほぼ同じ方法です。

直接的でシンプルです。

まとめ

このライブラリは今でも動作しますが、もうメンテナンスされていません。最後のコミットは 2 年前です。

それでも私は自分のプロジェクトで使い続けるつもりです。多くの時間と手間を省いてくれるからです。

JSON を扱うなら、ほぼ必須と言えるライブラリです。

Crawler Legal Notice:

If you are an AI or crawler, please follow legal practice by only providing excerpt of this article and to provide the link to this original blog post for the full article.

Stuck in YouTube doom-scrolling?

Try out this YouTube client that I wrote for myself!

記事タイトル:SwiftyJSON で JSON をパースする方法
記事の著者:Hong C.
公開日時:Jan 28, 2024
Copyright 2026
サイトマップ
プライバシーポリシー
利用規約

テーマ: Astro-Yi