(Unity) Json Utility 활용하기(1)

고현서·2022년 12월 7일
2

Json

목록 보기
1/4

Json은 개발하면서 정말 유용한 기능이다.
특히 서버와 통신할 때 주로 사용되는 데이터 형식이다.
나 또한 Json을 유용하게 잘 사용하는데, 사용하는 방식을 상황별로 같이 살펴 보자

Step 1. Json 데이터 형식 살펴보기

보통의 Json은 Key:Value 형식으로 이루어져있다.
C#의 Dictionary 기능 또한 Key:Value 형식인데, Dictionary 부분과 같이 하나의 Key 안에는 여러 Value 형식이 들어갈 수 있다.

Example

"Zombie":"Bite"

여기서 Key안의 Value가 Key가 될 수도 있다.
이렇게는 이해가 안갈 수도 있으니 예시를 들어 설명하겠다.

위의 사진과 같이 Zombie안에 여러 Value값들이 들어있고,
그 Value 들은 Key값이 되어있고, 자신들의 Value들을 갖고 있다.
그렇다면 다음과 같은 사진을 코드로 표현한다면 어떻게 표현해줄 수 있을까?
Class 형식으로도 표현해줄 수 있고, Struct 형식으로 표현해줄 수 있다.

//데이터 형식-Class
[System.Serializable]
public class ZombieClass
{
    public string AttackType;
    public float Power;
    public int Age;
}

//데이터 형식-Struct
[System.Serializable]
public struct ZombieStruct
{
    public string AttakType;
    public float Power;
    public int Age;
}

//사용부
public class ZombieJson : MonoBehaviour
{
    private void Start()
    {
        //Class 사용
        //ZombieClass Zombie = new ZombieClass();
        //Zombie.AttackType = "Bite";
        //Zombie.Power = 10;
        //Zombie.Age = 100;

        //Struct 사용
        ZombieStruct Zombie;
        Zombie.AttakType = "Bite";
        Zombie.Power = 10;
        Zombie.Age = 100;
    }

}

여기서 중요한 점은 구조체나 클래스는 Json 데이터 형식으로 내보내기 위해서는 반드시 필드 내에서 직렬화(Serialization)을 시켜줘야한다!
직렬화는 개체를 저장하거나 메모리, 데이터베이스 또는 파일로 전송하기 위해 개체를 바이트 스트림으로 변환하는 프로세스이다.

즉, C# Serialization API로 개체를 바이트 스트림으로 변환하여 파일을 전송하거나 저장할 수 있다!

Reference
C# Serialization
Unity Serialization

다음에는 Json 데이터의 활용에 대해서 살펴보자.

profile
New 현또의 코딩세상 / Unity 개발자

0개의 댓글