유니티에서 Json 사용하기 2


이 저작물은 크리에이티브 커먼즈 저작자표시-비영리-변경금지 2.0 대한민국 라이선스에 따라 이용할 수 있습니다.

 

유니티에서 Json 사용하기 – 배열 정보 로딩

지난 강좌에 이어서 이번에는 배열정보가 저장된 Json 데이터를 읽어보겠습니다.

 

이번에 사용할 Json 데이터는 아래에 있는 내용입니다.

보면 “Person” 이라는 이름의 배열이 있고 그 아래의 3개의 배열정보가 있습니다.

각각은 “Name”과 “Age” 정보를 가지고 있습니다.

</pre>

{
   "Person":
   [
       {
           "Name":"Ronnie",
           "Age":29
       },
       {
           "Name":"Seyun",
           "Age":29
       },
       {
           "Name":"Unity",
           "Age":10
       }
   ]
}

배열에 있는 정보를 불러올 때도 같은 방법이긴 하지만, 인덱스를 사용해서 접근을 해야 합니다.
스크립트를 보겠습니다.

using UnityEngine;
using System.Collections;

public class LoadTest : MonoBehaviour
{
    public TextAsset jsonData;

    void OnGUI()
    {
        if (GUILayout.Button("Load"))
        {
            LitJson.JsonData getData = LitJson.JsonMapper.ToObject(jsonData.text);

            for (int ix = 0; ix &amp;lt; getData["Person"].Count; ++ix)
            {
                Debug.Log(
                "Name: " + getData["Person"][ix]["Name"].ToString()
                + " Age: " + getData["Person"][ix]["Age"].ToString()
            );
        }
    }
}

 

LitJson.JsonMapper.ToObject() 함수를 이용해서 JsonData를 받아오는 부분까지는 지난 강좌와 동일 합니다.

 

그런데 배열정보는 해당 배열의 이름을 키값으로 데이터를 받아오게 되면 해당 데이터가 배열정보 이기 때문에 for 문 안을 보시면, ix 인덱스 값을 가지고 배열 정보에 접근을 해서 다시 “Name”과 “Age” 정보를 각각 불러 옵니다.

 

이 부분만 유의하셔서 사용하시면 됩니다.

해당 배열의 크기는 for 문에 보시면 알 수 있듯이 .Count 를 이용해서 받아올 수 있습니다.

데이터를 저장할 때 어떤 방식이 가장 효율적일까를 생각하실 때는, 일단 저장하실 데이터에 대한 이해를 잘 하셔야 합니다.

테이블을 구성해서 데이터를 저장하는 것이 효율적인 경우에는 SQLite 같은 SQL류의 데이터베이스를 사용하시면 되고, 테이블 구성이 쉽지 않고, 값이 일정하지 않은 경우에는 Json 또는 XML등을 이용해서 저장하는 것을 고려해 볼만 합니다.

그리고 물론 구현하기 쉽고 관리하기 쉬운 걸 고르셔서 사용하는 것이 가장 중요하겠네요.

이 강좌에서는 LitJson 이라는 Json Parser만 다루지만, 찾아보시면 아시겠지만, 보통 사용법이 비슷비슷 합니다.

Parser의 구현 내용과 사용방법이 다를뿐 Json의 구조는 동일하니까요.

 

내용 끝까지 읽어주셔서 감사합니다.
배너 클릭은 저에게 많은 힘이 됩니다.
감사합니다 🙂

RonnieJ

프리랜서 IT강사로 활동하고 있습니다. 게임 개발, 웹 개발, 1인 기업, 독서, 책쓰기에 관심이 많습니다.

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다