18
27

More than 5 years have passed since last update.

UnityでJSONファイルを読み込む(SimpleJSON編)

Last updated at Posted at 2015-03-15

UnityでJSONを扱う方法として、SimpleJSONを使用してJSONをパースします。今回はWeb上からJSONファイルを取得する方法ではなく、プロジェクトのAssetフォルダにJSONファイルがあることとします。

JSONパーサーをダウンロードする

JSONを読み込むためのパーサーを組み込みます。使用するのはSimpleJSONです。

SimpleJSON - Unify Community Wiki

リンク先からSimpleJSON.zipをダウンロードします。

SimpleJSONをプロジェクトにインポートする

SimpleJSON.zipを解凍すると、中にSimpleJSON.unitypackageというUnity Packageが入っています。

メニュー > Asset > Import Package > Custom Package を選択(もしくは、Projectビューで右クリック > Import Package > Custom Packageを選択)してください。

SimpleJSON.unitypackageを選択してプロジェクトにSimpleJSON.unitypackageを取り込んでください。

unity2015-03-14 22.16.59.png

ソースコードを記述する

SimpleJSONを使ってJSONファイルを読み込むスプリクトを記述します。

Scene上のゲームオブジェクトにAdd Componentでスクリプトを追加します。
(今回は空のゲームオブジェクトを作成し、スクリプトを追加しました。)

ProjectビューからCreate > C# Script でスプリクトを作成します。
ファイル名は「JSONSample.cs」としました。

JSONSample.cs

using UnityEngine;
using System.Collections;
using System.IO; //System.IO.FileInfo, System.IO.StreamReader, System.IO.StreamWriter
using System; //Exception
using System.Text; //Encoding
using SimpleJSON;

public class JSONSample : MonoBehaviour {

    public string jsonFileName;
    private JSONNode json;

    // Update is called once per frame
    void Update () {
        // スペースキーを押したらファイル読み込みをする
        if (Input.GetKeyDown (KeyCode.Space)) {
            ReadFile ();
        }   
    }
    // 読み込んだ情報をGUIとして表示
    void OnGUI()
    {
        if (json != null) {
            // キーワードがnameの値を取り出す
            GUI.TextArea (new Rect (0, 0, Screen.width, Screen.height), "name:" + json["name"]);
        }
    }

    // 読み込み関数
    void ReadFile(){
        string fileText = "";

        // FileReadTest.txtファイルを読み込む
        FileInfo fi = new FileInfo(Application.dataPath + "/" + jsonFileName);
        try {
            // 一行毎読み込み
            using (StreamReader sr = new StreamReader(fi.OpenRead(), Encoding.UTF8)){
                fileText = sr.ReadToEnd();
                // JSONをパースして値を取り出す
                json = JSONNode.Parse(fileText);
            }
        } catch (Exception e){
            // 改行コード
            fileText += "\n";
        }
    }
}

JSONファイルを指定する

スクリプトをInspector上で表示すると、JSONファイル名を指定できるようになっているはずです。JSONファイルをプロジェクトに取り込み、ファイル名を指定してください。

unity2015-03-14 22.55.54.png

サンプルで使用するJSONファイルは以下です。

sample.json

{"ID":null,"name":"Doe","first-name":"John","age":25,"hobbies":["reading","cinema",{"sports":["volley-ball","snowboard"]}],"address":{}}

実行結果

Playボタンを押して実行し、Spaceキーを押したら、以下の画面が表示されJSONファイルから指定したデータが読み込まれたことが確認できたら成功です。

unity2015-03-14 23.02.46.png

参考サイト

Unityで外部データ読み込み - Qiita
SimpleJSON - Unify Community Wiki

ソースコード

ソースコードは下記のリンクよりダウンロードできます。

UnityExample/JSONSample - GitHub

18
27
2

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
18
27