ページ内ナビ
概要
SwiftyJSONは、SwiftでJSONの階層を添字でたどり、文字列や数値などを取り出すライブラリです。FoundationのDataやオブジェクトからJSONを作り、型の違いと欠落を確認できます。
特徴と向いている用途
公式資料に基づく紹介・実機未検証 · 内容確認日:
主な特徴
入れ子のJSONを添字と型付きアクセサーで読む
JSON(data:)で解析した値をjson["users"][0]["name"].stringValueのように参照できます。任意値、既定値付きアクセサー、errorを使い分けて、欠落や型不一致を扱えます。
出典:[1]
向いている用途
導入前の確認
Codableとの役割と失敗時の扱いを決める
スキーマが安定し型全体を検証したい場合はCodableも比較対象です。stringValueなどの既定値付きアクセサーは失敗を既定値へ変えるため、必須項目ではerrorや任意値を確認してください。
出典:[1]
参考にした公式資料
- [1]SwiftyJSON 5.0.2 README(2026-10-05)
- [2]SwiftyJSON 5.0.2 release(2026-10-05)
- [3]SwiftyJSON 5.0.2 Package.swift(2026-10-05)
- [4]SwiftyJSON MIT license(2026-10-05)
- [5]SwiftyJSON GitHub metadata(2026-10-05)
編集部からの補足
API応答など形が一定でないJSONから、必要な値を簡潔に取り出したいSwift開発者向けです。欠落と型不一致を隠さず、errorや型付きアクセサーを確認してください。
3ステップで試す
- 1
固定版を使うSwiftパッケージを作る
Swift 5.6以上とGitが必要です。一時ディレクトリに実行可能パッケージを作り、SwiftyJSON 5.0.2を固定します。
demo=$(mktemp -d "${TMPDIR:-/tmp}/swiftyjson-demo.XXXXXX") && cd "$demo" && printf '%s\n' '// swift-tools-version:5.6' 'import PackageDescription' 'let package = Package(name: "Demo", dependencies: [.package(url: "https://github.com/SwiftyJSON/SwiftyJSON.git", exact: "5.0.2")], targets: [.executableTarget(name: "Demo", dependencies: ["SwiftyJSON"])])' > Package.swift && mkdir -p Sources/Demo - 2
入れ子のJSONを読むコードを書く
users配列をDataから解析し、先頭のnameと配列件数を型付きアクセサーで取り出します。
printf '%s\n' 'import Foundation' 'import SwiftyJSON' 'let data = #"{"users":[{"name":"Ada"},{"name":"Linus"}]}"#.data(using: .utf8)!' 'let json = try JSON(data: data)' 'print(json["users"][0]["name"].stringValue)' 'print(json["users"].arrayValue.count)' > Sources/Demo/main.swift - 3
実行結果を検証する
swift runで依存関係を解決して実行し、Adaと2が順に出力されることを確認します。
test "$(swift run -q Demo)" = $'Ada\n2'
成長
成長の推移 · 直近30日
22,934 Stars
推移データを蓄積中です。
開発アクティビティ
直近90日・週次
- Commit(直近30日)
- 0
- Open PR
- 21
開発アクティビティを蓄積中です。
Built with
カテゴリとタグ
カテゴリ
GitHubデータ
関連情報
関連記事を投稿するこのOSSの使い方や活用事例をMarkdownで投稿できます。管理者が承認した後に公開されます。
あわせて探訪
- jq35,745 Stars
共通タグ 1件
shell pipelineの中でJSONを選択・変換・集約する軽量processor
C - Biome25,899 Stars
共通タグ 1件
コード整形、静的検査、修正、エディタ診断を一つの高速な道具へまとめる
Rust - Gson24,234 Stars
共通タグ 1件
Java objectとJSONをannotation必須なしで相互変換するserialization library
Java - Ajv14,850 Stars
共通タグ 1件
JSON SchemaやJTDをcompileし、API入力や設定値を高速に実行時検証する
TypeScript - opa12,322 Stars
共通タグ 1件
認可や構成ルールをRegoで記述し、アプリから分離して判定する
Go - Json.NET11,312 Stars
共通タグ 1件
.NETオブジェクトとJSONの変換、手動操作、ストリーム処理を一つのAPI群で扱う
C#
情報の誤りを報告
掲載内容に誤りや古い情報があればお知らせください。