com.unity.nuget.newtonsoft-json

 

JsonConvert.DeserializeObject 메서드는 JSON 문자열을 특정 .NET 객체로 변환해주는 기능을 제공하는데, 추상 클래스(abstract)를 직접 인스턴스화할 수 없기 때문에 이를 직접 변환하는 것은 불가능합니다. 하지만 일반적인 사용 사례에서는 추상 클래스를 기반으로 하는 구체적인 파생 클래스를 JSON으로 변환하고 다시 .NET 객체로 역직렬화합니다.

 

TypeNameHandling 설정하기

TypeNameHandling 설정하기 JsonSerializerSettings에서 TypeNameHandling을 설정하면 JSON에 .NET 타입 이름을 포함시킬 수 있습니다. 이렇게 하면 역직렬화할 때 올바른 파생 클래스로 객체를 생성할 수 있습니다.

using System.Text;
using Newtonsoft.Json;

public static class DataParser {
    static JsonSerializerSettings settings = new JsonSerializerSettings {
        TypeNameHandling = TypeNameHandling.All
    };

    public static T ReadJsonData<T>(string str)
    {
        return JsonConvert.DeserializeObject<T>(str, settings);
    }

    public static string DataToJsonData<T>(T obj)
    {
    	return JsonConvert.SerializeObject(obj, settings);
    }
}

 

 
반응형