
JSON 직렬화
System.Text.Json, JsonSerializer, custom converters, naming policies, null 처리
1최신 .NET에서 JSON 직렬화를 위한 주요 namespace는 무엇입니까?
최신 .NET에서 JSON 직렬화를 위한 주요 namespace는 무엇입니까?
답변
System.Text.Json은 .NET Core 3.0 이상에서 JSON 직렬화를 위한 공식 namespace입니다. 더 높은 성능을 제공하고 프레임워크에 통합되어 있으며 최신 시나리오에 최적화되어 있어 Newtonsoft.Json(Json.NET)을 점진적으로 대체하고 있습니다. Newtonsoft.Json은 하위 호환성이나 System.Text.Json에서 제공하지 않는 고급 기능을 위해 NuGet을 통해 계속 사용할 수 있습니다.
2C# 객체를 JSON 문자열로 직렬화하려면 어떤 메서드를 사용합니까?
C# 객체를 JSON 문자열로 직렬화하려면 어떤 메서드를 사용합니까?
답변
JsonSerializer.Serialize는 C# 객체를 JSON 문자열로 변환합니다. 이 정적 메서드는 직렬화할 객체와 선택적으로 동작을 사용자 정의하기 위한 JsonSerializerOptions를 받습니다. Serialize는 string을 반환하는 반면, SerializeToUtf8Bytes는 string 할당을 피해 성능을 최적화하기 위해 byte[]를 반환합니다.
3JSON 속성에 대한 System.Text.Json의 기본 명명 규칙은 무엇입니까?
JSON 속성에 대한 System.Text.Json의 기본 명명 규칙은 무엇입니까?
답변
기본적으로 System.Text.Json은 C# 속성 이름을 정확히 보존합니다(대소문자를 구분하는 PascalCase). C# 속성 이름이 UserName이면 JSON에는 UserName이 포함됩니다. camelCase(userName)를 얻으려면 JsonSerializerOptions에 PropertyNamingPolicy = JsonNamingPolicy.CamelCase를 설정해야 합니다. 이는 기본적으로 camelCase를 사용하는 Newtonsoft.Json과 다릅니다.
JSON 문자열을 형식화된 C# 객체로 역직렬화하려면 어떻게 합니까?
JSON 직렬화 중에 속성을 무시하려면 어떤 특성을 사용합니까?
+17 면접 질문