"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > JSON.NET을 사용하여 직렬화하지 않고 JSON 특성을 어떻게 제조 할 수 있습니까?

JSON.NET을 사용하여 직렬화하지 않고 JSON 특성을 어떻게 제조 할 수 있습니까?

2025-01-27에 게시됨
검색:343

How Can I Deserialize JSON Properties Without Serializing Them Using Json.Net?

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