データを読み込んでみる!SwiftのJSONの使い方【初心者向け】

初心者向けにSwiftで書くJSONの使い方を解説しています。データを読み込んだりデータを生成する際に便利で、複雑なデータも見やすく取り出すことができます。データ交換のフォーマットとしても活用できるので、使い方を理解しておきましょう。

TechAcademyマガジンはオンラインのプログラミングスクールTechAcademy [テックアカデミー]が運営する教育×テクノロジーのWebメディアです。初心者でもすぐ勉強できる記事が2,000以上あります。

SwiftでJSONの使い方について解説しています。

JSONデータを読み込むサンプルプログラムも用意しているので、参考にしながら実際に書いてみてください。

 

なお本記事は、TechAcademyのiPhoneアプリ開発オンラインブートキャンプの内容をもとに紹介しています。

 

JSONとは

JSONとは 、JavaScript Object Notation の略で、データを記述するための書式のことです。

SwiftやJavaScript、Java、Python、C原語等たくさんのコンピュータ言語で使用することができます。

人間にとって読み書きが容易で、コンピュータにとっても容易にデータの読み取りや生成を行なえる形式です。

JSONを使用することにより、文字列や配列などを組み合わせた複雑な構造を持つデータを扱うことができます。

 

以下は、基本的なJSONのデータです。

学生情報をJSONで表現しており、

学生IDは数値型、名前は文字列、そして学生が受講している講義名を配列で記述しています。

{
  "ID":123456789,
  "Name":"John Smith",
  "Class":[
    {
      "Class1":{
            "Name":"Mathmatics",
            "Lecturer":"Mario Rossi"
      }
    },
    {
      "Class2":{
            "Name":"Physics",
            "Lecturer":"Jean Pierre Bernard"
      }
    }
  ]
}

 

実際にJSONデータを読み込んでみよう

では、次にJSONデータを読み込み、JSONSerialization を用いてJSONをパースしたあと、文字列や数値データを取り出します。

// JSONデータ作成
let jsonData: String = "[
    {
        "id":"1",
        "info": {
            "name":"Mario Rossi",
            "age":40
        }
    },
    {
        "id":"2",
        "info": {
            "name":"Jean Pierre Bernard",
            "age":50
        }
    }
]"
var lecturerData: Data =  jsonData.data(using: String.Encoding.utf8)!

// JSONデータの読み込みとデータの取り出し
do {
    let json = try JSONSerialization.jsonObject(with: lecturerData, options: JSONSerialization.ReadingOptions.allowFragments) // JSONの読み込み
    let top = json as! NSArray // トップレベルが配列
    for roop in top {
        let next = roop as! NSDictionary
        print(next["id"] as! String) // 1, 2 が表示

        let content = next["info"] as! NSDictionary
        print(content["age"] as! Int) // 40, 50 が表示
    }
} catch {
    print(error) // パースに失敗したときにエラーを表示
}

JSONSerialization.jsonObject(with: lecturerData, options: JSONSerialization.ReadingOptions.allowFragments) と書くことで、
lectureDataが解析するための形に整えられ、

next[“id”]やnext[“info”]、content[“age”] と書くことでjsonの各データにアクセスできるようになります。

 

以上、Swiftで書くJSONの使い方を解説しました。

複雑なデータでも見やすくすることができるので、使い勝手が良いでしょう。

入門向けのSwift学習サイトもまとめているので、Swift習得を目指している方はご覧ください。

 

また、TechAcademyでは初心者でも最短4週間でオリジナルアプリが作れるiPhoneアプリ開発オンラインブートキャンプを開催しています。

期間中は現役エンジニアのメンターが毎日学習をサポートするので、独学よりも効率的に学ぶことができます。