[Unity] JSON形式のテキストを扱う

サーバと通信したり外部Assetを使ったりするときに、たびたびJSON形式のデータを扱うことがありました。

Unityで簡単にJSONを扱えるパーサとしてminiJSONがあります。
スクリプトファイル一つ追加するだけで使用できるようになります。

■導入
miniJSONは下記GitHubにて公開されています。

https://gist.github.com/darktable/1411710

URLにアクセスしたら、右側にある「Download Gist」ボタンをクリックしてZIPファイルをダウンロードしてください。
ダウンロードしたZIPファイルを解凍し、フォルダを開くとminiJSON.csファイルが一つだけ存在します。

これをUnityプロジェクトにインポートして準備完了です。

■使ってみる
JSONをデシリアライズ/シリアライズするだけの簡単なスクリプトです。

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using MiniJSON;

public class TestJSON : MonoBehaviour {
    const string TEST_TEXT = "{"aaa":123,"bbb":"ABC","ccc":"ccc"}";

    void Start() {
        var dic = Json.Deserialize(TEST_TEXT) as Dictionary<string, object>;

        Debug.Log(dic["aaa"]);
        Debug.Log(dic["bbb"]);
        Debug.Log(dic["ccc"]);

        dic["ddd"] = 12345;

        var json = Json.Serialize(dic);
        Debug.Log(json);
    }
}

minijson-test

MiniJSON.Json.Deserialize()でJsonテキストをデシリアライズします。
デシリアライズしたデータはDictionaryとして返却されるため、Dictionaryにキャストします。
後は普通にKeyを添字としてアクセスできます。

シリアライズにはMiniJSON.Json.Serialize()を用います。
Dictionaryデータ引数に渡せばJson形式のテキストがstringとして返却されます。

駆け足の説明になってしまいましたが、手軽に扱えるものとしてご紹介させていただきました。

■参考サイト
[Unity][MiniJSON]JSONデータを読み込む | CHO DESIGN LAB
UnityでJSONをあつかう – MiniJSON – Neareal