728x90
Unity에서 Json을 사용하는 방법
1. Json string을 만드는 방법
1.1. class를 만든다.
1.2. JsonUtility.ToJson(클래스의 인스턴스)
2. Json string을 class로 변환하는 방법
2.1. JsonUtility.FromJson<클래스명>(json 변수명)
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class SmartTag
{
public string tagId;
public string tagName;
public string locationType;
public int posX;
public int posY;
public int posZ;
public string assetTypeIcon;
}
public class Test : MonoBehaviour
{
void Start()
{
SmartTag tag = new SmartTag();
tag.tagId = "001";
tag.tagName = "태그1";
string tag_json = JsonUtility.ToJson(tag);
print(tag_json);
SmartTag tag_class = JsonUtility.FromJson<SmartTag>(tag_json);
print(tag_class);
print(tag_class.tagId);
print(tag_class.tagName);
}
}
3. http 통신에서 받은 Json 사용하는 방법
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Networking;
[System.Serializable]
class SmartTagRoot
{
public List<SmartTag> tags;
}
[System.Serializable]
class SmartTag
{
public string tagId;
public string tagName;
public string locationType;
public int posX;
public int posY;
public int posZ;
public string assetTypeIcon;
}
public class NetworkTest : MonoBehaviour
{
void Start()
{
StartCoroutine(doUpdate());
}
IEnumerator doUpdate()
{
while(true)
{
StartCoroutine(ServerRequest());
yield return new WaitForSeconds(1f);
}
}
IEnumerator ServerRequest()
{
string url = "";
UnityWebRequest www = UnityWebRequest.Get(url);
yield return www.SendWebRequest();
if (www.error == null)
{
var tagData = JsonUtility.FromJson<SmartTagRoot>(www.downloadHandler.text);
print("Tag Count : " + tagData.tags.Count);
}
else Debug.LogError(www.error);
}
}
728x90
'3D > Unity' 카테고리의 다른 글
Unity ColorUtility (0) | 2022.10.11 |
---|---|
Unity Array List Dictionary (0) | 2022.10.10 |
Action 으로 다른 스크립트 함수 가져오는 방법 (0) | 2022.10.10 |
코루틴 (0) | 2022.10.09 |
TextMeshPro 텍스트 변경 및 한글폰트 설정 (0) | 2022.10.02 |