とあるプログラマの備忘録

都内某所に住むプログラマが自分用に備忘録を残すという趣旨のブログです。はてなダイアリーから移動しました!

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

久しぶりのブログですが、この間に若干のデスマを挟んでいるraharuです。 最近Unityを触る機会が増えて楽しい日々を過ごしています。

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

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

LitJson入れる

UnityでJSONをあつかう - LitJSON - Neareal 参考にさせて頂きました。

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

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 Opening_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