> 백엔드 개발 > C++ > Json.Net을 사용하여 JSON 역직렬화 중에 개인 설정자를 어떻게 처리할 수 있습니까?

Json.Net을 사용하여 JSON 역직렬화 중에 개인 설정자를 어떻게 처리할 수 있습니까?

Linda Hamilton
풀어 주다: 2025-01-04 11:23:39
원래의
232명이 탐색했습니다.

How Can I Handle Private Setters During JSON Deserialization with Json.Net?

Json.Net Private Setter 처리

Json.Net에는 역직렬화 중에 개인 Setter를 처리하기 위한 기본 동작이 내장되어 있지 않습니다. 그러나 속성을 사용하여 이 동작을 명시적으로 지정하는 방법을 제공합니다.

[JsonProperty] 속성

[JsonProperty] 속성을 사용하여 Json.Net에 지시할 수 있습니다. 역직렬화할 때 읽기 전용 속성을 개인 설정자로 채웁니다. 이 속성을 읽기 전용 속성에 추가하면 역직렬화 중에 설정할 수 있습니다.

예:

[JsonProperty]
public Guid? ClientId { get; private set; }
로그인 후 복사

대체 솔루션: 매개변수가 있는 생성자

개인 설정자를 처리하는 또 다른 접근 방식은 설정하려는 속성과 일치하는 매개 변수가 있는 생성자를 제공하는 것입니다. 이 생성자는 JSON 개체를 역직렬화할 때 사용됩니다.

예:

public class Foo
{
    public string Bar { get; }

    public Foo(string bar)
    {
        Bar = bar;
    }
}
로그인 후 복사

이 방법으로 JSON 문자열을 다음과 같이 역직렬화할 수 있습니다.

string json = "{ \"bar\": \"Stack Overflow\" }";

var deserialized = JsonConvert.DeserializeObject<Foo>(json);
Console.WriteLine(deserialized.Bar); // Stack Overflow
로그인 후 복사

사용할 솔루션은 애플리케이션의 특정 요구 사항에 따라 다릅니다. [JsonProperty] 특성은 개인 설정자를 처리하는 간단한 방법을 제공하지만 속성에 대한 특성 장식이 필요합니다. 생성자를 사용하는 대체 접근 방식은 속성 장식을 피하고 개인 및 공용 설정자 모두에서 작동합니다.

위 내용은 Json.Net을 사용하여 JSON 역직렬화 중에 개인 설정자를 어떻게 처리할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿