Json은 개발하면서 정말 유용한 기능이다.
특히 서버와 통신할 때 주로 사용되는 데이터 형식이다.
나 또한 Json을 유용하게 잘 사용하는데, 사용하는 방식을 상황별로 같이 살펴 보자
보통의 Json은 Key:Value 형식으로 이루어져있다.
C#의 Dictionary 기능 또한 Key:Value 형식인데, Dictionary 부분과 같이 하나의 Key 안에는 여러 Value 형식이 들어갈 수 있다.
"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)을 시켜줘야한다!
직렬화는 개체를 저장하거나 메모리, 데이터베이스 또는 파일로 전송하기 위해 개체를 바이트 스트림으로 변환하는 프로세스이다.
Reference
C# Serialization
Unity Serialization
다음에는 Json 데이터의 활용에 대해서 살펴보자.