Json.NET(Newtonsoft)에서 파생 유형의 직렬화 및 역직렬화
Json.NET은 복잡한 데이터 구조를 직렬화 및 역직렬화하는 유연성을 제공합니다. 파생 형식을 처리할 때 올바르게 역직렬화되도록 직렬화 중에 형식 정보를 보존하는 것이 중요합니다.
Json.NET은 JsonSerializerSettings
객체의 TypeNameHandling
속성을 통해 이 기능을 구현합니다. 이 속성을 All
으로 설정하면 Json.NET은 직렬화된 출력에 형식 이름을 포함합니다.
예를 들어 다음 기본 클래스와 파생 클래스를 고려해 보세요.
<code class="language-csharp">public class Base { public string Name; } public class Derived : Base { public string Something; }</code>
파생 유형을 직렬화 및 역직렬화하려면:
<code class="language-csharp">// 序列化 var object1 = new Base() { Name = "Object1" }; var object2 = new Derived() { Something = "Some other thing" }; var inheritanceList = new List<Base>() { object1, object2 }; JsonSerializerSettings settings = new JsonSerializerSettings { TypeNameHandling = TypeNameHandling.All }; string serialized = JsonConvert.SerializeObject(inheritanceList, settings); // 反序列化 var deserializedList = JsonConvert.DeserializeObject<List<Base>>(serialized, settings);</code>
이 접근 방식을 통해 Json.NET은 유형 정보를 보존하여 파생 유형을 성공적으로 역직렬화할 수 있습니다. 그러나 직렬화된 출력에는 객체와 관련된 유형 및 객체를 보유하는 데 사용되는 목록이 포함된다는 점에 유의하는 것이 중요합니다.
위 내용은 Json.net은 파생 유형 직렬화 및 역직렬화를 어떻게 처리할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!