[유니티 Json]Newtonsoft Json 추가 하기


Newtonsoft Json 라이브러리

– Unity에서 JSON 사용에 기본으로 제공되는 JsonUtility가 기본 제공 되고 있다.
하지만, 중첩 구조나 리스트, 딕셔너리, 그리고 커스터마이징이 필요할 때는 한계를 느끼게 된다.
그래서 Newtonsoft Json 설치와 사용법에 대해서 알아 보자.

  • Newtonsoft Json:
    – 복잡한 구조도 쉽게 처리
    – 직관적인 API
    – 다양한 포맷 옵션 지원
    – 커스터마이징 자유로움

– 설치 방법

 1. 패키지 매니저 열기
상단 메뉴에서 Window / Package Manager 선택

 2. 왼쪽 상단 +버튼 Install package by name… 선택
(버전에 따라 Add package by name…으로 표기)

     3. com.unity.nuget.newtonsoft-json 입력 후 설치(Install or Add)


    설치가 완료되면 코드에서 바로 사용할 수 있다.


    – 사용 방법

    가장 많이 쓸 기능인 Serialize(객체를 JSON으로)Deserialize(JSON을 객체로)에 대해서 알아 보자.

    • 예제로 사용한 Data Class
    [System.Serializable]
    public class TestData {
        public string name;
        public int age;
    }

    • 객체를 JSON 문자열로 변환하기 (Serialize)
    using Newtonsoft.Json;
    using UnityEngine;
    
    public class SerializeClass : MonoBehaviour {
    
        private void Start() {
            TestData td = new TestData();
            td.name = "Tom";
            td.age = 23;
            
            string jsonStr = JsonConvert.SerializeObject(td, Formatting.Indented);
            Debug.Log(jsonStr);
        }
        
    }

    • JSON 문자열을 객체로 변환하기 (Deserialize)
    using Newtonsoft.Json;
    using UnityEngine;
    
    public class SerializeClass : MonoBehaviour {
    
        private void Start() {
            string jsonStr = "{\"name\":\"Tom\",\"age\":23}";
            
            TestData td = JsonConvert.DeserializeObject<TestData>(jsonStr);
            Debug.Log($"Name: {td.name}, Age: {td.age}");
        }
        
    }


    유니티에서 기본적으로 JSON 지원을 하지만 다차원 배열 등 이중구조일 경우 Json으로 변환이 어렵다.
    하지만 설치도 쉽고 사용도 편한 Newtonsoft Json을 쓰면 해결 된다.
    아니면, List나 Dictionary를 커스터마이징 하면 사용 할 수는데, 시간나면 그 부분도 포스팅 하겠다.

    Leave a Comment