툴/유니티

유니티 C# JSON 파싱 / LitJson

스튜디오 오버그래픽스 2023. 11. 25. 12:31

유니티 C#에서 JSON 데이터를 활용하려면 JSON Utility도 있지만 LitJson도 있음

 

https://litjson.net/

 

LitJSON - Home

What is LitJSON? A .Net library to handle conversions from and to JSON (JavaScript Object Notation) strings. LitJSON is written in C#, and it’s intended to be small, fast and easy to use. It's quick and lean, without external dependencies. Just a few cla

litjson.net

 

LitJson.dll 파일을 다운로드 받고 유니티 프로젝트 Assets 폴더 안에 Plugin 이라는 폴더를 만들고 넣어주면 됌

그리고 네임스페이스에 using LitJson;을 넣어줘서 사용

 


유니티에서 LitJson 활용하기

 

공공 데이터 API를 사용해서 JSON 데이터를 받기

(*공공 데이터를 가져왔을때 JSON 타입이어야 사용가능, 만약 받아온 데이터가 JSON데이터가 아니라면 JSON데이터로 변환이 필요함)

 

ACE 관측 데이터의 경우 데이터 포맷이 JSON이라서 별도 변환 필요 없음

  

{
  "error": false,
  "errorCode":"NOERR",
  "data": [
  	{
  	  "time": "2016-07-20 15:40",
  	  "protonDensity": 0.3,
  	  "bulkSpeed": 0.4,
  	  "ionTemp": 1,0,
  	},
  	...
  ],
  "lastUpdate": "2016-07-20 15:50:00"
}

 

위와 같이 JSON데이터를 받아옴

JSON데이터는 배열 구조를 가지고 있고 KEY값으로 해당 값을 가져올 수 있음

 

위에 시간인 "time"을 보면 data : 뒤에 []  괄호 안에 들어 있음

=> "data"라는 키 값에 첫번째 배열안에 "time"이 들어있는 구조임

만약 time의 값을 가져오려면

 

using LitJson;
...
...
...
	void GetKeyData()
    {
        JsonData KeyData = JsonMapper.ToObject(JsonData);
        string Value = KeyData["data"][0]["time"].ToString();
        Debug.Log(Value);
    }

JsonData를 JsonMapper기능으로 가져오고 KeyData라는 이름으로 받음

string 자료형 Value를 만들고 KeyData의 "data"라는 키의 첫번째 배열의 "time"키를 가져옴