유니티/Json

Json + Excel 응용(JsonUtility)

잉ㅇ잉ㅇ 2024. 4. 26. 01:34

원래는 쭉 Json.Convert로 사용할 생각이었지만 아무리 생각해도

지금 상황에서 더 편해보이는 JsonUtility를 사용하지 않을 이유가 없을것같다

 

그리고 후에 볼 수도 있으니 정리글을 간략하게나마 적어보려 한다

 

public class test1 : MonoBehaviour
{
    class Data
    {
        public int id;
        public string name;
        public int count;
    }
    void Start()
    {
        Data fruit = new Data() { id = 101, name = "apple", count = 3 };

        //Json으로 변환
        string jsondata = JsonUtility.ToJson(fruit);
        Debug.Log(jsondata);
    }
}

우선 이번엔 미리 Json 파일을 준비하지 않고 내가 직접 변수 fruit안에 클래스값을 넣어주었다

가장 먼저 클래스 파일을 Json타입 파일로 변환해주겠다

 

string jsondata = JsonUtility.ToJson(fruit);

그리고 이게 jsondata 변수에 Json타입으로 변환해준 변수 fruit값을 넣어주는 코드이다

캬 정말 쉽다. 심지어 To/FromJson이라 구분하기도 간편하다

 

이번엔 FromJson을 이용하여 Json 파일을 원래 클래스 파일로 변환해주겠다

 

public class test1 : MonoBehaviour
{
    class Data
    {
        public int id;
        public string name;
        public int count;
    }
    void Start()
    {
        Data fruit = new Data() { id = 101, name = "apple", count = 3 };
        //Json 타입으로 변환(직렬화)
        string jsondata = JsonUtility.ToJson(fruit);
        //클래스 타입으로 변환(비직렬화)
        Data data = JsonUtility.FromJson<Data>(jsondata);

        Debug.Log(data.id);
        Debug.Log(data.name);
        Debug.Log(data.count);
    }
}

Data data = JsonUtility.FromJson<Data>(jsondata);

당연히 클래스타입을 받을 변수이니 Data로 변수 선언을 해준뒤 FromJson으로 받아주는데

ToJson과 다른점이 있다면

1. <꺽쇠괄호>안에 들어갈 데이터 클래스 이름을 넣어준뒤

2. (소괄호)안에 데이터값이 들어간 변수를 넣어준다

 

정말 너무 보기 쉽고 간편하다. 당분간은 이 방법을 써야겠다