JSON.NET의 선택적 속성 역직렬화
JSON 호환성을 유지하면서 직렬화된 속성을 열거형에서 클래스로 변환할 수 있습니다. JSON.NET은 이러한 요구 사항을 해결하는 여러 가지 방법을 제공합니다.
방법 1: Serialize 방법
JSON.NET은 ShouldSerialize 메서드를 제공합니다. PropertyName이 직렬화에서 제외될 속성인 ShouldSerializePropertyName 메서드를 생성하여 포함을 방지할 수 있습니다. 예:
<code class="language-csharp">public class Config { public Fizz ObsoleteSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; // 从序列化中排除 ObsoleteSetting } }</code>
방법 2: JObject를 사용하여 작업
JsonConvert.SerializeObject를 사용하는 대신 Config 개체를 JSON 개체(JObject)로 변환하고, 필수 속성을 제거하고, 결과 JObject를 직렬화합니다.
<code class="language-csharp">var jo = JObject.FromObject(config); jo["ObsoleteSetting"].Parent.Remove(); var json = jo.ToString();</code>
방법 3: 속성 기반 제외
대상 속성에 [JsonIgnore]를 적용하면 직렬화에서 제외됩니다. 그러나 속성을 역직렬화하려면 동일한 속성 이름으로 프라이빗 설정자를 만들고 [JsonProperty]를 적용하세요. 예:
<code class="language-csharp">public class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingSetter { set { ObsoleteSetting = value; } } }</code>
이러한 기술을 사용하면 속성의 직렬화 및 역직렬화를 선택적으로 제어하여 속성 변경을 수용하는 동시에 기존 JSON 구성과의 호환성을 보장할 수 있습니다.
위 내용은 호환성을 유지하면서 JSON.NET의 속성을 선택적으로 역직렬화하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!