Json.Net 제외 속성을 사용한 직렬화
Json.Net을 사용하여 객체를 직렬화하는 경우 역직렬화할 때는 일부 속성이 필요할 수 있지만 직렬화할 때는 필요하지 않을 수 있습니다. 이 문서에서는 이 시나리오를 구현하는 여러 가지 방법을 살펴봅니다.
방법 1: 조건부 직렬화
Json.Net은 조건부로 직렬화를 제어할 수 있는 ShouldSerialize 메서드를 지원합니다. 필수 속성에 대한 ShouldSerialize 메서드를 정의하고 false를 반환하도록 설정합니다.
<code class="language-csharp">class Config { public Fizz ObsoleteSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }</code>
방법 2: JObject를 사용하여 JSON 작업
객체를 JObject로 역직렬화한 후 직렬화하기 전에 속성을 수동으로 제거합니다.
<code class="language-csharp">JObject jo = JObject.FromObject(config); jo["ObsoleteSetting"].Parent.Remove(); string json = jo.ToString();</code>
방법 3: 속성 사용
a. 개인 설정자를 사용하여 속성을 무시합니다.
직렬화할 속성을 제외하려면 [JsonIgnore]
속성을 사용하세요. 대체 사유 재산 설정자에게 신청하려면 [JsonProperty]
을 사용하세요.
<code class="language-csharp">class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingAlternateSetter { set { ObsoleteSetting = value; } } }</code>
b. 공개 설정자를 사용하여 속성을 무시합니다.
또는 [JsonProperty]
과 함께 공용 속성 setter를 사용하고 [JsonIgnore]
을 사용하여 해당 getter를 제외합니다.
<code class="language-csharp">class Config { [JsonProperty("ObsoleteSetting")] public Fizz ObsoleteSetting { set; private get; } }</code>
위 내용은 Json.Net을 사용하여 직렬화에서 속성을 제외하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!