Json.Net을 사용하여 직렬화하지 않고 속성 역직렬화
경우에 따라 직렬화된 JSON 개체의 속성을 역직렬화해야 할 수 있지만 직렬화할 때 속성을 다시 쓰고 싶지는 않습니다. Json.Net을 사용하여 이를 달성하는 방법은 다음과 같습니다.
방법 1: 메서드를 직렬화해야 함
Json.Net을 사용하면 클래스에서 ShouldSerialize 메서드를 정의하여 조건부로 속성을 직렬화할 수 있습니다. ShouldSerializeBlah() 메서드를 만들고(여기서 Blah는 직렬화하지 않으려는 속성입니다) 항상 false를 반환하도록 합니다.
public bool ShouldSerializeObsoleteSetting()
{
return false;
}
방법 2: JObject를 사용하여 JSON 작업
JObject.FromObject를 사용하여 객체를 JObject에 로드합니다. JSON에 쓰기 전에 불필요한 속성을 제거하세요.
JObject jo = JObject.FromObject(config);
jo["ObsoleteSetting"].Parent.Remove();
json = jo.ToString();
방법 3: 속성 남용
직렬화하지 않으려는 속성에 [JsonIgnore] 특성을 적용합니다. 원래 속성과 동일한 유형 및 이름을 사용하여 프라이빗 속성 설정자를 정의하고 동일한 JSON 이름(
)을 사용하여 [JsonProperty] 특성을 적용합니다.[JsonIgnore]
public Fizz ObsoleteSetting { get; set; }
[JsonProperty("ObsoleteSetting")]
private Fizz ObsoleteSettingAlternateSetter
{
set { ObsoleteSetting = value; }
}
위 방법 중 하나를 사용하면 역직렬화를 허용하면서 직렬화에서 속성을 선택적으로 제외할 수 있습니다.
부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.
Copyright© 2022 湘ICP备2022001581号-3