Unity에서 JSON 파일 로드(SimpleJSON편)

Unity에서 JSON을 처리하는 방법으로 SimpleJSON을 사용하여 JSON을 구문 분석합니다. 이번에는 웹에서 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를 가져옵니다.



소스 코드 작성



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 파일을 프로젝트로 가져와 파일 이름을 지정합니다.



샘플에서 사용하는 JSON 파일은 다음과 같습니다.

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

실행 결과



Play 버튼을 눌러 실행하고 스페이스바를 누르면 다음 화면이 표시되고 JSON 파일에서 지정한 데이터가 로드된 것을 확인할 수 있으면 성공입니다.



참고 사이트



Unity에서 외부 데이터 로드 - Qiita
SimpleJSON - Unify Community Wiki

소스 코드



소스 코드는 아래 링크에서 다운로드할 수 있습니다.

UnityExample/JSONSample - GitHub

좋은 웹페이지 즐겨찾기