Unity JSON Library
유니티에서 JSON을 사용할 때 편리한 라이브러리를 소개하려고 한다.
Unity Asset 스토어에서 JSON.Net을 검색하면 다음과 같이 나오는데
impot 한다.

Asset-> Package로 설치가 가능하다.
Package Manager 에서 'com.unity.nuget.newtonsoft-json' 을 입력한다.


반응형
< 특징 >
특징으로는 클래스를SerializeObject 와 DeserializeObject 가 가능하다는 장점이 있다.
그냥 string 을 읽어서 파싱을 하지 않아도 된다. 데이터 클래스로 바로 변환하면 된다.
데이터를 InfoSkinUnit 클래스로 바로 변환하는 과정이다.
변환할 JSON 데이터는 다음과 같다.

InfoSkinUnit의 클래스는 다음과 같다.

JObject loaddata = JObject.Parse(_loadstring);
JObject levelJObject = (JObject)loaddata["data_skin"];
for (int i = 0; i < levelJObject.Count; i++)
{
JObject item = (JObject)levelJObject[i.ToString()];
if (null == item)
{
continue;
}
var jsonString = JsonConvert.SerializeObject(item, Formatting.None);
InfoSkinUnit info = JsonConvert.DeserializeObject<InfoSkinUnit>(jsonString);
info.index = i;
this.m_DicSkinInfo.Add(i, info);
}
private void SaveSkinPiece()
{
JObject savedata = new JObject();
JArray arraydata = new JArray();
string jsonInfoData = "";
for (int i = 0; i < this.m_UserSkinPieceInfoList.Count; i++)
{
arraydata.Add( JToken.FromObject(this.m_UserSkinPieceInfoList[i]));
}
savedata["data_skin"]= arraydata;
jsonInfoData = JsonConvert.SerializeObject(savedata, Formatting.Indented);
Logger.LogFormat("[UserInfoManager] SaveSkinPiece : {0}",jsonInfoData);
PlayerPrefs.SetString(Define.USER_UNIT_PIECE_LIST, jsonInfoData);
}
JSON이 클래스로 변환이 바로 되니 코드도 간결하고 복잡하지 않다.
예전에는 JSON 파서 클래스를 따로 두고 데이터를 읽어서 Object와 Array를 구분했었는데 그에 비하면 정말 편하다.
혹시 Unity에서 JSON Parser를 고민한다면 추천드린다.
★★☆☆☆
반응형
'개발 > Unity) Asset' 카테고리의 다른 글
| UnityAsset) AI Assistant 사용해보기 (1) | 2024.02.23 |
|---|---|
| Unity Asset)UModeler X - 텍스쳐 페인팅(Texture Painting) -3 (0) | 2023.11.12 |
| Unity Asset) UModeler X - 모델링 수정하기(Modeling Modify) -2 (0) | 2023.11.12 |
| Unity Asset) UModeler X (Unity 3D 모델링/ 편집 / 리깅 ) 소개 - 1 (0) | 2023.11.08 |
| Unity Asset) Book Page Curl (책 넘기는 효과) (2) | 2022.06.06 |
댓글