【Unity】 LitJsonを使用してResource以下のJsonファイルをパースする

raharu(仮名)(プログラマー)
これがダイバージェンス1%の先の世界か。。。

どうもこんにちわ、
最近Unityを触る機会が増えて楽しい日々を過ごしています。

Cocos2dxちゃんはちょっと休憩、また3.3Finalくらいのバージョンが出てきたらやろうかと思います。

もう何番煎じの話題か分かりませんが、備忘録として残しておきます。

LitJson入れる

(http://neareal.net/index.php?ComputerGraphics%2FUnity%2FTips%2FJSON%2FLitJSON) 参考にさせて頂きました。

※Jsonファイルは面倒なのでエクセルで作成して

(http://shancarter.github.io/mr-data-converter/)で変換しています

test.json

[{"id":1,"name":"ボス1","hp":100000,"attack":300},
{"id":2,"name":"ボス2","hp":200000,"attack":4500},
{"id":3,"name":"ボス3","hp":3333333,"attack":6000}]

このような適当な物を作成します

その後このjsonファイルを.txtに拡張子変更します。

これをUnityに入れます今回はResources/Json/test.txtとして入れました

test_scene.cs

using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using LitJson;
public class Test_Scene : MonoBehaviour {
public List<DecodeData> dataList = new List<DecodeData>();
public class DecodeData
{
public int id;
public string name;
public int hp;
public int attack;
}
// Use this for initialization
void Start () {
// MasterJsonLoad
TextAsset mapText = Instantiate(Resources.Load("Json/test")) as TextAsset;
// ListAdd
DecodeData[] json_data = JsonMapper.ToObject<DecodeData[]> (mapText.text);
dataList.AddRange (json_data);
foreach (DecodeData list in dataList) {
Debug.Log(list.name);
}
}
// Update is called once per frame
void Update () {
}
}

f:id:raharu0425:20140909110812p:plain