[Unity] Json

< Json은 언제 쓰나요? >

- 저장할 때(예를 들면 Save & Load를 구현할 때)

- 통신할 때

- 기타 등등...

 

 

< 개념적인 이해 >

Json은 코드를 저장하는 택배라고 생각하면 쉽다!

저장하기 위해선 코드를 Json으로 변환해 저장하고

불러오기 위해선 Json을 가져와 코드로 변환해주면 된다

 

이때 json과 코드 사이의 변환은 유니티에서 지원해준다!

 

 

< Json 사용법 >

 

* 저장하기

1. 저장할 코드(데이터)를 만든다

2. json으로 변환한다

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

class PlayerData
{
    public string name;
    public int level;
    public int coin;
    public bool skill;
}

public class JsonTest : MonoBehaviour
{
    // 1. 데이터를 만든다
    PlayerData player = new PlayerData() { name = "yk", level = 1, coin = 100, skill = false };

    void Start()
    {
        // 2. json으로 변환한다
        string jsonData = JsonUtility.ToJson(player);
    }
}

 

이때, json은 string 타입임을 알 수 있다!

jsonData를 출력해보면 아래와 같다.

 

 

* 불러오기

 

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

class PlayerData
{
    public string name;
    public int level;
    public int coin;
    public bool skill;
}

public class JsonTest : MonoBehaviour
{
    // 1. 데이터를 만든다
    PlayerData player = new PlayerData() { name = "yk", level = 1, coin = 100, skill = false };

    void Start()
    {
        // 2. json으로 변환한다
        string jsonData = JsonUtility.ToJson(player);

        // 대응할 데이터 형식을 <>에 적어준다!
        PlayerData loadPlayer = JsonUtility.FromJson<PlayerData>(jsonData);
    }
}

 

JsonUtility함수를 이용해 코드로 변환한다.

이때, <>에 어떤 데이터 형식으로 변환할 것인지 넣어주어야 한다.

 

json을 변환한 loadPlayer는 player 변수와 같은 상태가 된다!

 

위 예제에서는 간단하게 변환해보았지만 실제 프로젝트에선 외부의 데이터를 가져올 때 쓴다던가 save&load를 구현할 때 쓴다.


< 참고 자료 >

https://www.youtube.com/watch?v=-Myy_fRljo0