반응형
목차
JsonUtility란?
유니티 엔진 자체적으로 지원하는 경량 JSON 직렬화/역직렬화 도구이다. UnityEngine 네임스페이스에 포함되어 있으며, 별도 패키지 없이 바로 사용이 가능하다.
직렬화(Serialize) 😎 객체 -> Json 문자열
직렬화를 진행하면 객체가 json 형태의 string 문자열로 변환된다.
[Serializable]
public class Player
{
public string name;
public int score;
}
var data = new Player { name = "Alice", score = 100 };
string json = JsonUtility.ToJson(data);
Debug.Log(json); // 출력: {"name":"Alice","score":100}

역직렬화(Deserialize) 😎 Json 문자열 -> 객체
string json = "{\"name\":\"Alice\",\"score\":100}";
PlayerData data = JsonUtility.FromJson<PlayerData>(json);
Debug.Log(data.name); // 출력: Alice

📌 JsonUtility 장점
- 매우 빠르고 가볍다. (Unity 내부 C++ 코드로 구현)
- 사용법이 아주 간단하다. (ToJson, FromJson)
- Unity에 내장된 기능이라서 별도의 라이브러리가 필요하지 않다.
⚠️ JsonUtility 단점 및 제한사항
- 간단한만큼 지원되는 기능이 거의 없다.
- 중첩된 클래스, 제네릭, 인터페이스 지원 미흡
- public + [Serializable] 필요, private 필드는 직렬화되지 않음
JsonUtility vs Newtonsoft.Json

정리하자면
- Unity 엔진에서 간단하게 Json 직렬화/역직렬화 하기에 아주 좋은 도구
- 객체 -> Json 문자열 : JsonUtility.ToJson(obj);
- Json 문자열 -> 객체 : JsonUtility.FromJson(json);
- 사용 조건 : public + [Serializable]
TestJsonUtility.cs
0.00MB
같이 읽으면 좋은 글
Json 파일 형태에 따른 역직렬화 코드 예제
Object로 구성된 Json 파일{ "LengthMin": 1, "LengthMax": 12, "CharacterId": 100}역직렬화 코드 예제using var reader = new StreamReader(fullPath);string json = reader.ReadToEnd();// T로 디시리얼라이징var result = JsonSerializer.Deseriali
jettstream.tistory.com
'프로그래밍' 카테고리의 다른 글
Python 코드로 테스트 가능한 로커스트(Locust) (0) | 2025.04.03 |
---|---|
NginX와 SSL 인증서로 보안 연결 설정하기 (0) | 2025.03.30 |
JSON-RPC란 무엇인가? (0) | 2025.03.19 |
표현식(Expression)과 구문(Statement)을 비교해보자 (0) | 2025.03.18 |
API 호출을 위해 포스트맨을 사용해보자 (1) | 2025.02.19 |
댓글