C#에서 JSON 직렬화 속성을 제외하는 방법
객체를 JSON으로 직렬화할 때 직렬화된 데이터의 크기를 줄이거나 개인 정보 보호를 유지하기 위해 특정 속성을 제외해야 하는 경우가 많습니다. 이 문서에서는 공용 속성의 JSON 직렬화를 제외하는 두 가지 일반적인 방법을 살펴봅니다.
방법 1: [JsonIgnore] 속성 사용
인기 있는 Json.Net 라이브러리를 사용하는 경우 [JsonIgnore] 속성은 속성을 제외하는 직접적인 방법을 제공합니다. 이 특성으로 속성에 주석을 추가하면 직렬화 및 역직렬화 중에 이를 무시하도록 직렬 변환기에 지시할 수 있습니다.
예:
<code class="language-csharp">public class Car { // 包含在 JSON 中 public string Model { get; set; } public DateTime Year { get; set; } public List<string> Features { get; set; } // 排除 [JsonIgnore] public DateTime LastModified { get; set; } }</code>
방법 2: DataContract 및 DataMember 속성 사용
또는 System.Runtime.Serialization 네임스페이스에서 제공하는 DataContract 및 DataMember 속성을 사용할 수 있습니다. DataContract 특성은 클래스를 직렬화 가능으로 표시하고 DataMember 특성은 포함할 속성을 지정합니다.
<code class="language-csharp">[DataContract] public class Computer { // 包含在 JSON 中 [DataMember] public string Name { get; set; } [DataMember] public decimal SalePrice { get; set; } // 排除 public string Manufacture { get; set; } public int StockCount { get; set; } public decimal WholeSalePrice { get; set; } public DateTime NextShipmentDate { get; set; } }</code>
자세한 설명
두 방법 모두 직렬화 프로세스를 조작하여 작동합니다. [JsonIgnore] 특성은 주석이 달린 속성을 건너뛰도록 Json.Net 직렬 변환기에 지시하는 반면, DataMember 특성은 직렬화할 속성을 명시적으로 지정합니다.
[JsonIgnore] 속성은 사용하기 더 쉽지만 DataContract 및 DataMember 속성은 직렬화 및 역직렬화에 대해 더 많은 제어 기능을 제공합니다. 또한 속성 이름, 직렬화 형식 등 직렬화의 다른 측면을 제어할 수도 있습니다.
위 내용은 C#의 JSON 직렬화에서 속성을 제외하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!