【Swift】SwiftでJSONを扱いやすくするツールの使い方

この記事でわかること

  • SwiftでJSONを扱う際の効率化ツールを知れる
  • JSONPlaceholderの基本的な利用方法がわかる
  • quicktypeの基本的な利用方法がわかる

動作確認済みの環境

【XCode】15.3
【Swift】5.10
【iOS】17.5.1
【macOS】Sonoma 14.4.1

当ブログでは記事内で紹介する参考文献にアフィリエイトリンクを付与する場合がございます。それらはすべて著者が実際に利用している文献ですので、安心して参照いただけます。

スポンサーリンク
目次

はじめに

アプリ開発において、Webサービスとの通信やデータ保存のためにJSONを用いるシーンは頻繁にあります。

今回の記事では、JSONを利用する際に作業を効率化してくれる2つのツールとその具体的な使い方についてご紹介します。

JSONPlaceholder

1つめはJSONPlaceholderです。
Web上で利用可能なツールで、APIを利用することであらかじめ作成されたダミーのJSONデータをダウンロードできます。

このツールを利用することで、アプリの機能テストを行う際、ダミーデータを自分で用意する手間を省くことが可能になります。

利用方法

STEP
JSONPlaceholderにアクセスする

まずはhttps://jsonplaceholder.typicode.comにアクセスします。

JSONPlaceholderのトップページ
STEP
ダミーデータを取得する

画面を下にスクロールし[Resources]に移動します。

Resourcesに移動

ここに各種ダミーデータが格納されています。ためしに/postsをクリックしてみましょう。

/postsをクリック

合計100件の投稿データを確認することができます。
投稿データの他にも、JSONPlaceholderには以下のデータが用意されています。

/posts: 投稿データ100件
/comments: コメントデータ500件
/albums: アルバムデータ100件
/photos: 画像データ5000件
/todos: Todoデータ200件
/users: ユーザーデータ10件

例えば投稿データを用いて機能テストを行いたい場合には、https://jsonplaceholder.typicode.com/postsからデータを取得するコードを書くことで、JSONPlaceholder上のダミーデータを利用することができます。

<参考>データダウンロードを行う機能の実装例
//URLを作成
let url = URL(string: "https://jsonplaceholder.typicode.com/posts")!

//データを取得
URLSession.shared.dataTask(with: url) { data, response, error in
    
    //正しくデータ取得できているか確認
    guard
        let data = data,
        error == nil,
        let response = response as? HTTPURLResponse,
        response.statusCode >= 200 && response.statusCode < 300
    else{
        return
    }
    
    //JSONデータのデコード
    guard let posts = try? JSONDecoder().decode([Post].self, from: data) else{
        return
    }
    
    //デコードしたデータを出力
    for post in posts {
            print("User ID: \(post.userID)")
            print("ID: \(post.id)")
            print("Title: \(post.title)")
            print("Body: \(post.body)")
            print("----------")
        }
    
}.resume()
GOAL

 

基本的には上記の2STEPだけで利用することが可能です。
より細かい仕様については公式ガイドをご覧ください!

quicktype

2つ目はquicktypeです。
こちらもWeb上で利用できるツールで、JSONデータをコピペすることで、エンコード・デコード用のSwiftカスタム構造体の定義を自動で生成してくれます。

JSONの構造が複雑になると、構造体側のCodingKey・イニシャライザ・メソッドの実装が複雑になりがちですが、quicktypeを使えば実装の手間を省くことができます。

さっそく使い方を見てみましょう。

利用方法

STEP
quicktypeにアクセスする

まずはhttps://app.quicktype.io/にアクセスします。

quicktypeのトップページ
STEP
JSONをコピペし、構造体の定義を自動作成する

デコード・エンコードを行いたいJSONデータをquicktypeにコピー&ペーストします。

例えば、先ほど紹介したJSONPlaceholderで以下のデータを取得し、デコード・エンコードを行うとします。

JSONPlaceholderから取得した投稿データ

その場合、このJSONを丸ごとコピーします。その後quicktypeを開き、以下の順で作業を行います。

①[Name]欄にデータの名称(今回はPost)を入力します。

②Source Type欄はJSONを選択します。

③白線の四角の中に、先ほどコピーしておいたJSONデータをペーストします。

④入力されたJSONデータを元に、quicktypeが最適な形のSwiftカスタム構造体の定義を作成し、表示してくれます。

あとは表示されたコードをXcodeに貼り付けるだけで、簡単に構造体の定義が完了します!

GOAL

おわりに

今回は、JSONを利用する際に作業を効率化してくれる2つのツールとその使い方についてご紹介しました。
本文中で紹介しきれなかった細かい仕様に関しては、以下の参考文献をご覧ください!

以上、参考になれば嬉しいです。
ここまでお読みくださり、ありがとうございました????

※本記事は、著者が学習した内容をまとめたものとなります。内容の精査につきましては、執筆時の技術力で可能な限りの注意を払っていますが、万が一誤りがございましたらフォームからご一報いただけると幸いです????????

参考文献

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次