.NET

JSON 직렬화

System.Text.Json, JsonSerializer, custom converters, naming policies, null 처리

20 면접 질문·
Mid-Level
1

최신 .NET에서 JSON 직렬화를 위한 주요 namespace는 무엇입니까?

답변

System.Text.Json은 .NET Core 3.0 이상에서 JSON 직렬화를 위한 공식 namespace입니다. 더 높은 성능을 제공하고 프레임워크에 통합되어 있으며 최신 시나리오에 최적화되어 있어 Newtonsoft.Json(Json.NET)을 점진적으로 대체하고 있습니다. Newtonsoft.Json은 하위 호환성이나 System.Text.Json에서 제공하지 않는 고급 기능을 위해 NuGet을 통해 계속 사용할 수 있습니다.

2

C# 객체를 JSON 문자열로 직렬화하려면 어떤 메서드를 사용합니까?

답변

JsonSerializer.Serialize는 C# 객체를 JSON 문자열로 변환합니다. 이 정적 메서드는 직렬화할 객체와 선택적으로 동작을 사용자 정의하기 위한 JsonSerializerOptions를 받습니다. Serialize는 string을 반환하는 반면, SerializeToUtf8Bytes는 string 할당을 피해 성능을 최적화하기 위해 byte[]를 반환합니다.

3

JSON 속성에 대한 System.Text.Json의 기본 명명 규칙은 무엇입니까?

답변

기본적으로 System.Text.Json은 C# 속성 이름을 정확히 보존합니다(대소문자를 구분하는 PascalCase). C# 속성 이름이 UserName이면 JSON에는 UserName이 포함됩니다. camelCase(userName)를 얻으려면 JsonSerializerOptions에 PropertyNamingPolicy = JsonNamingPolicy.CamelCase를 설정해야 합니다. 이는 기본적으로 camelCase를 사용하는 Newtonsoft.Json과 다릅니다.

4

JSON 문자열을 형식화된 C# 객체로 역직렬화하려면 어떻게 합니까?

5

JSON 직렬화 중에 속성을 무시하려면 어떤 특성을 사용합니까?

+17 면접 질문

다음 면접을 위해 .NET을 마스터하세요

모든 질문, flashcards, 기술 테스트, 코드 리뷰 연습, 면접 시뮬레이터에 접근하세요.

무료로 시작하기