그 동안 기획일 하면서 데이터만 만들었지,
직접 뭔가를 해볼일은 없었는데 이참에 해보는 것으로...
-------------
Unity3d Json Parser를 검색해보면
- JsonFX (가장 편하다는 평인데, 사이트 접속 불가. DLL 은 구했지만 스킵.)
- LitJson (iOS 이슈 게시물이 상당히 많다.. 위험)
- MiniJson (EastFever 님의 추천!!)
- JsonObject (직접 테스트 해본 것. 문제 없음)
등이 나오는데
일단은 JsonObject 를 사용해봤다.
이유는 Unity3D Asset Store에 등록되어있는데다가 무료고,
다들 잘 사용하고 있는 것 같아서 선택했다.
다운로드 및 레퍼런스 위키는 아래 주소에서 확인 가능하다.
http://wiki.unity3d.com/index.php/JSONObject#Download
나는 간단하게 읽고 쓰기만 할 생각이라서 뭐 다른건 지원된다고 해도 그러려니 상태였다.!
당연히 유니티 5.5에서도 문제 없었기에 이걸로 써야지~ 하고 결정!!!
-------------
그.. 그런데... 두둥!
조금 더 알아보다 보니,
유니티 5.3 부터 JsonUtility 라는 내장 API 가 생긴 것이다. 두두둥..!!
(몰랐다니, 아니 대수롭지 않게 보고 흘려서 까먹은듯,
릴리즈 블로그 읽기를 소홀히 한 제 탓입니다. T_T)
그래서 바로 쓱쓱 테스트 !!!
일단 레퍼런스 문서를 보자.
https://docs.unity3d.com/ScriptReference/JsonUtility.html
# ToJson 사용 방법 (코드 예제)
using UnityEngine;
[System.Serializable]
public class MyJsonClass
{
// 사용할 Json Key 를 정의
public int level;
public float timeElapsed;
public string playerName;
}
public class JsonUtilityTest : MonoBehaviour {
private void WriteJSon() {
MyJsonClass myObject = new MyJsonClass();
myObject.level = 5;
myObject.timeElapsed = 14.75f;
myObject.playerName = "Kpaper ToJson Test";
string json = JsonUtility.ToJson(myObject);
Debug.Log(json);
}
}
# FromJson 사용 방법. (더 자세한 내용은 위의 레퍼런스 사이트보면 잘 나와 있다.)
JsonUtility.FromJson<MyJsonClass>(json);
------
딱 내가 원하는 것만 간단하게 쓸 수 있어서 좋았다.
손쉽게 시리얼라이즈!
아무래도 엔진에 종속되서 개발을 하다 보니,
외부 에셋을 쓰기 보다는 내장된게 좋을 것 같아서 방향 선회!를 하는 것으로 결론...
끝!
P.S : 교훈. 멀리서 찾지 말자 -_-;;;
-----------------------------------------------------
[내용 업데이트]
으헉!!
JsonUtility는 Json 타입 중 Property Type 에는 사용할 수 있는데, Dictionary Type 은 사용할 수 없다.
구글 선생님한테 물어봐도 고통, 포럼 유저들도 다 같이 고통 중이었다.
(언젠간 업데이트 되지 않을까 하고 헛된 희망을 가져봤다.)
하지만 계속 구글링 해본 결과, 다행히 구글 선생님은 일본 블로그 하나를 추천해주셨다.
http://kou-yeung.hatenablog.com/entry/2015/12/31/014611
(杏仁さん、ありがとうございます。 T_Td)
ISerializationCallbackReceiver 를 이용하는 방법이다.
이걸로 거의 해결! (왜 거의인지는 나중에 다시 포스팅 하겠다. ㅜㅜ)
P.S 2 : 그냥 평범하게 선구자분들에게 추천 받은 것으로 할 걸, 왜 그랬을까. ㅠ_ㅠ...
<끝>
댓글 없음:
댓글 쓰기