JSON.Net 부분 직렬화 및 역직렬화 기술
JSON.Net은 직렬화 및 역직렬화에 대한 유연한 제어를 제공합니다. 이 가이드에서는 직렬화 프로세스에서 속성을 선택적으로 제외하는 방법을 살펴봅니다.
방법 1: ShouldSerialize
JSON.Net은 ShouldSerialize
메서드를 사용하여 조건부 속성 직렬화를 허용합니다. 속성을 제외하려면 항상 ShouldSerialize[PropertyName]()
을 반환하는 false
이라는 부울 메서드를 만듭니다.
예:
class Config { public Fizz ObsoleteSetting { get; set; } public Bang ReplacementSetting { get; set; } public bool ShouldSerializeObsoleteSetting() { return false; } }
이렇게 하면 ObsoleteSetting
이 직렬화된 JSON에 포함되는 것을 방지할 수 있습니다.
방법 2: JObject
보다 직접적인 제어를 위해서는 직렬화 전에 JObject
을 사용하여 JSON 구조를 조작하세요.
JObject
을 사용하여 개체를 JObject.FromObject
으로 변환하세요.jo["ObsoleteSetting"].Parent.Remove()
을 사용하여 원치 않는 속성을 제거하세요.JObject
을 직렬화합니다.방법 3: 속성 및 개인 설정자
이 접근 방식은 우아한 부분 직렬화를 위해 속성과 개인 설정자를 결합합니다.
[JsonIgnore]
속성으로 표시하세요.[JsonProperty]
을 사용하여 공용 속성과 동일한 JSON 이름을 지정합니다.예:
class Config { [JsonIgnore] public Fizz ObsoleteSetting { get; set; } [JsonProperty("ObsoleteSetting")] private Fizz ObsoleteSettingAlternateSetter { set { ObsoleteSetting = value; } } public Bang ReplacementSetting { get; set; } }
이것은 내부 사용을 유지하면서 직렬화 중에 ObsoleteSetting
을 효과적으로 숨깁니다. 귀하의 필요와 코딩 스타일에 가장 적합한 방법을 선택하세요.
위 내용은 JSON.Net을 사용하여 부분 직렬화 및 역직렬화를 어떻게 달성할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!