제이슨 ( Json )
제이슨(Json)이란 쉽게 말해, 물품을 택배로 보내기 위해서 택배 상자로 포장 후, 배송 되어 물품을 받듯이,
데이터(물품)을 Json(택배 상자)로 변환해, Json을 다시 원래의 코드로((Json)택배 -> 조립도 -> 클래스(코드)) 바꾸어 주는 형태이다.
Json으로 변환 시에 외부 침입 시에도 쉽게 접근이 불가하기 때문에 보안에 용이하다.
우선, Json 을 활용하려면, Json으로 변환할 데이터가 필요하다.
예)
class Data
{
public string nickname;
public int level;
public int coin = 100;
public bool skill;
}
이 데이터를 Json으로 변환하려면, 유니티에서 제공하는 'JsonUtility' 클래스의 'ToJson(변환할데이터)' 메소드를 사용해주면 된다.
public class JsonManager : MonoBehaviour
{
Data player = new Data()
{
nickname = "오늘코딩",
level = 50,
coin = 200,
skill = false
};
void Start()
{
// #. Json으로 변환
string jsonData = JsonUtility.ToJson(player);
}
}
이렇게 Data 클래스에 있는 데이터를 포장(택배포장) 시켰다.
하지만, 이 상태라면 포장만 시켜놓고 데이터를 쓸 수도 없는 상황이다.
이 데이터(물품)을 꺼낼 수 있는 방법은 'FromJson<타입>(꺼낼데이터)' 메소드이다.
void Start()
{
// #. Json으로 변환
string jsonData = JsonUtility.ToJson(player);
// #. Json 데이터를 다시 변환
Data player2 = JsonUtility.FromJson<Data>(jsonData);
print(player2.nickname);
print(player2.level);
print(player2.coin);
print(player2.skill);
}
이렇게 하면 print문으로 출력했을 때, 다시 데이터가 출력되는 것을 볼 수 있다.
추가적으로 기존 객체에 Json 데이터를 역직렬화하여 기존 데이터를 덮어쓸 수도 있다.
JsonUtility.FromJsonOverwrite(jsonData, player2);
'참고할 만한 내용' 카테고리의 다른 글
{ 유니티 } 오브젝트 풀링 (ObjectPool) (0) | 2025.02.10 |
---|---|
발사체 공식 (0) | 2024.02.29 |
Sprite Settings (0) | 2024.01.25 |
Coroutine() (0) | 2024.01.11 |
모바일 게임 해상도(가로) (0) | 2024.01.11 |