Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
56
Help us understand the problem. What is going on with this article?

More than 5 years have passed since last update.

@phi

[Unity] MiniJSON 使って json 読み込み

ゲームに関する設定ファイルとかって json で管理したかったりしますよね?
ただ, C# では標準で JSON をパースする仕組みはサポートされていません.

そこで, MiniJSON ってやつが手軽でサクッと使えたので
簡単に使い方を紹介します.

1. MiniJSON.cs をダウンロードして Assets に配置

MiniJSON は MiniJSON.cs という単体のファイルで実装されています.

下記からダウンロードしましょう
code or raw

ダウンロードしたら下図のように
Plugins フォルダを作って MiniJSON を配置します.

1.png

2. json ファイルを作成

Resources フォルダに
sample.json というファイルを作りましょう.

ちなみに中身はこんな感じになっています.

{
    "name": "phi",
    "age": 26,
    "bloodType": "O"
}

2.png

3. 実際に MiniJSON を使って json をパースする

適当に C# ファイルを作成し, 空のオブジェクトとかに
くっつけてください.

そしてまず, 下記のように using します.

using System.Collections.Generic;
using MiniJSON;

次に実際に読み込んでパースします.

Resources.Load() で json ファイルを読み込んで
MiniJSON で定義されている Json.Deserialize() に中身を渡しています.
Start() とか Awake() あたりに書いてください.

これで json の構造に合わせた Dictionary が返ってきます.

var textAsset = Resources.Load ("sample") as TextAsset;
var jsonText = textAsset.text;

// 文字列を json に合わせて構成された辞書に変換
var json = Json.Deserialize (jsonText) as Dictionary<string, object>;

下記のようにキャストして使います.

Debug.Log ((string)json["name"]);
Debug.Log ((long)json["age"]);
Debug.Log ((string)json["bloodType"]);

4. Unity で実行する

実行してみてください. 下図のように
結果が Console パネルに表示されているのがわかるかと思います.

3.png

以上, 備忘録でした.

56
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
56
Help us understand the problem. What is going on with this article?