[c#] C# JSON 직렬화 속성

C#에서 JSON 직렬화를 수행할 때 특정 속성을 무시하거나 이름을 다르게 지정하고 싶을 때가 있습니다. 이를 위해 Newtonsoft.Json 라이브러리를 사용하여 JSON 직렬화 속성을 적용할 수 있습니다. 이 라이브러리는 C#에서 JSON 직렬화 및 역직렬화를 지원하는 가장 널리 사용되는 라이브러리 중 하나입니다.

1. JsonIgnore 속성

JsonIgnore 속성은 특정 속성을 JSON 직렬화에서 제외시킬 때 사용됩니다. 이 속성을 해당 속성 위에 지정함으로써 해당 속성은 JSON 직렬화 과정에서 무시됩니다.

예를 들어, 다음과 같이 JsonIgnore 속성을 사용하여 특정 속성을 JSON 직렬화에서 제외시킬 수 있습니다.

public class User
{
    public string Name { get; set; }
    
    [JsonIgnore]
    public string Password { get; set; }
}

위의 예제에서 Password 속성은 JsonIgnore 속성으로 인해 JSON 직렬화 과정에서 제외됩니다.

2. JsonProperty 속성

JsonProperty 속성은 특정 속성의 이름이나 직렬화/역직렬화 동작을 지정할 때 사용됩니다. JsonIgnore 속성과 달리, JsonProperty 속성을 사용하여 속성의 이름을 변경하거나 속성에 대한 동작을 커스터마이징할 수 있습니다.

예를 들어, 다음과 같이 JsonProperty 속성을 사용하여 특정 속성의 이름을 변경하고 동작을 지정할 수 있습니다.

public class User
{
    [JsonProperty("username")]
    public string Name { get; set; }
    
    [JsonProperty(PropertyName = "password", NullValueHandling = NullValueHandling.Ignore)]
    public string Password { get; set; }
}

위의 예제에서 Name 속성은 JsonProperty 속성으로 인해 “username”이라는 이름으로 직렬화되고, Password 속성은 JsonProperty 속성으로 인해 “password”라는 이름으로 직렬화되며, null값은 무시됩니다.

이렇듯, JsonIgnoreJsonProperty 속성을 사용하여 C# 클래스의 속성을 JSON 직렬화할 때 세밀하게 제어할 수 있습니다.

더 많은 정보 및 옵션에 대한 자세한 내용은 공식 문서를 참고하세요.