유니티 엔진/유니티 엔진의 구성

유니티 엔진의 구성 - 40) JSON과 JsonUtility

monstro 2026. 5. 4. 16:45
728x90
반응형

- 개요

데이터를 교환하기 위한 JSON 데이터 포맷을 유니티에서 어떻게 사용하는지 알아본다

 

1) JSON이란?

JSON은 데이터를 저장하고 전송하기 위한 경량 데이터 형식이다

Key-Value 쌍으로 데이터를 저장하여 읽고 쓰기 쉽고, 컴퓨터를 통한 파싱과 생성에도 용이하다

주로 데이터를 저장하거나 데이터를 송수신하는 용도로 사용하며 외부 프로그램과도 통신하는데 사용한다

 

2) JSON 문법 규칙

 

JSON 파일을 작성하기 위한 문법의 규칙은 위와 같다

 

3) JsonUtility - 유니티에서의 JSON 사용

private class PlayerData
{
    public Vector3 position;
    public int health;
}

 

기본적으로 사용할 데이터 클래스는 위와 같다

Vector3int로 구성된 데이터를 저장한다

 

3 - 1) 객체와 JSON 문자열간의 변환

private void Start()
{
    PlayerData playerData = new PlayerData();
    playerData.position = new Vector3(5, 0);
    playerData.health = 100;

    string jsonData = JsonUtility.ToJson(playerData, true);
    Debug.Log(jsonData);

    PlayerData loadedPlayerData = JsonUtility.FromJson<PlayerData>(jsonData);
    Debug.Log("position : " + loadedPlayerData.position);
    Debug.Log("health : " + loadedPlayerData.health);
}

 

Start 함수를 위와 같이 구성하였다

유니티에서 JSON 형식을 편하게 사용하기 위해 제공하는 JsonUtility 클래스를 사용하였다

  • ToJson 함수 : Object 객체JSON 문자열변환 + True 인자를 사용하여 보기 편한 JSON 문자열을 사용
  • FromJson<T> 함수 : JSON 문자열을 Object 객체변환

 

 

Start 함수의 실행 결과는 위와 같다

PlayerData 객체를 JSON 문자열로 변환하여 출력하고

변환된 JSON 문자열을 다시 PlayerData 객체로 복호화하여 출력하였다

 

3 - 2) JSON 파일 작업

private void Start()
{
    PlayerData playerData = new PlayerData();
    playerData.position = new Vector3(5, 0);
    playerData.health = 100;

    string jsonData = JsonUtility.ToJson(playerData, true);
    Debug.Log(jsonData);

    File.WriteAllText(Application.dataPath + "/saveFile.json", jsonData);

    string jsonFileData = File.ReadAllText(Application.dataPath + "/saveFile.json");
    PlayerData loadedPlayerData = JsonUtility.FromJson<PlayerData>(jsonFileData);
    Debug.Log("position : " + loadedPlayerData.position);
    Debug.Log("health : " + loadedPlayerData.health);
}

 

File 클래스의 함수를 사용하면 데이터를 외부 JSON 파일로 쓰고, 외부 JSON 파일을 읽어올 있다

  • WriteAllText 함수 : Object 데이터를 외부 파일로 쓰기 위한 함수
  • ReadAllText 함수 : 외부 파일을 읽어 Object 데이터로 저장할 수 있는 함수

 

 

위와 같이 Object 데이터를 saveFile.json 파일로 저장한 것을 확인할 수 있다

 

 

또한 저장된 saveFile.json 파일을 읽어와 출력하고 있는 것을 확인할 수 있다

728x90
반응형