반응형
다음과 같은 구조가 있다고 해보자.
public class Box
{
public double Length { get; set; }
public double Width { get; set; }
public double Height { get; set; }
}
public class Carton : Box
{
public int Index { get; set; }
}
Carton은 Box를 상속 받는다. 이러한 객체의 값을 Serialize하게 되면 아래와 같은 형태로 나온다.
{
"Index": 1,
"Length": 800.0,
"Width": 600.0,
"Height": 1400.0
}
위의 Json 정보만으로는 이것이 Carton인지 다른 어떤 객체인지 확인이 불가능하다.
var settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All };
string json = JsonConvert.SerializeObject(Carton, Newtonsoft.Json.Formatting.Indented, settings);
위와 같이 직렬화 옵션을 주면 아래와 같이 바뀌어서 나온다.
{
"$type": "Test.Carton",
"Index": 1,
"Length": 800.0,
"Width": 600.0,
"Height": 1400.0
}
이것을 통해 우리가 원하는 객체가 어떤 것인지 type을 통해 파악이 가능하다.
반응형
'프로그래밍 > C#' 카테고리의 다른 글
[C#] Linq Where Performance Test (0) | 2022.01.26 |
---|---|
[C#] List에 추가된 구조체의 값 (0) | 2022.01.25 |
[C#] Newtonsoft private set 값 DeserialzeObject 방법 (0) | 2022.01.18 |
[C#] 매번 다른 Random 값 얻기 (0) | 2021.09.09 |
[C#] List 순서 섞기 (0) | 2021.07.30 |