Json.net을 사용하여 속성을 다시 직렬화하지 않고 역직렬화
Json.net을 사용하면 C# 개체 속성의 직렬화 및 역직렬화 프로세스를 제어할 수 있습니다. 이 문서에서는 JSON 파일에서 특정 속성을 역직렬화하지만 JSON 파일로 다시 직렬화하지 않으려는 시나리오를 살펴봅니다. 이를 달성하는 몇 가지 방법은 다음과 같습니다.
방법 1: ShouldSerialize 메서드 사용
Json.net은 ShouldSerialize 메서드를 사용하여 조건부 직렬화를 지원합니다. 직렬화 중에 무시하려는 속성의 경우 클래스에 Boolean ShouldSerializeBlah() 메서드를 추가합니다. 여기서 Blah는 속성 이름입니다. 이 메서드는 항상 false를 반환해야 합니다.
예:
<code class="language-csharp">class Config { public Fizz ObsoleteSetting { get; set; } public Bang ReplacementSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }</code>
방법 2: JObject를 사용하여 JSON 작업
JsonConvert.SerializeObject에 의존하는 대신 구성 객체를 JObject로 역직렬화할 수 있습니다. JSON에 쓰기 전에 JSON에서 원치 않는 속성을 제거하세요.
<code class="language-csharp">JObject jo = JObject.FromObject(config); // 从其父级中删除“ObsoleteSetting” JProperty jo["ObsoleteSetting"].Parent.Remove(); json = jo.ToString();</code>
방법 3: 속성 사용
또 다른 방법은 속성을 사용하는 것입니다.
예는 다음과 같습니다.
<code class="language-csharp">class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingAlternateSetter { // get intentionally omitted here set { ObsoleteSetting = value; } } public Bang ReplacementSetting { get; set; } }</code>
위 내용은 Json.net을 사용하여 다시 직렬화하지 않고 JSON에서 속성을 역직렬화하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!