.NET

Serializacja JSON

System.Text.Json, JsonSerializer, custom converters, naming policies, obsługa null

20 pytań z rozmów·
Mid-Level
1

Jaka jest główna przestrzeń nazw dla serializacji JSON w nowoczesnym .NET?

Odpowiedź

System.Text.Json to oficjalna przestrzeń nazw dla serializacji JSON w .NET Core 3.0+. Stopniowo zastępuje Newtonsoft.Json (Json.NET), ponieważ jest wydajniejszy, zintegrowany z frameworkiem i zoptymalizowany pod kątem nowoczesnych scenariuszy. Newtonsoft.Json pozostaje dostępny przez NuGet dla zachowania wstecznej kompatybilności lub zaawansowanych funkcji niedostępnych w System.Text.Json.

2

Której metody użyć, aby zserializować obiekt C# do ciągu JSON?

Odpowiedź

JsonSerializer.Serialize konwertuje obiekt C# na ciąg JSON. Ta statyczna metoda przyjmuje obiekt do serializacji oraz opcjonalnie JsonSerializerOptions w celu dostosowania zachowania. Serialize zwraca string, podczas gdy SerializeToUtf8Bytes zwraca byte[], aby zoptymalizować wydajność, unikając alokacji string.

3

Jaka jest domyślna konwencja nazewnictwa System.Text.Json dla właściwości JSON?

Odpowiedź

Domyślnie System.Text.Json zachowuje dokładnie nazwy właściwości C# (PascalCase z rozróżnianiem wielkości liter). Jeśli właściwość C# nazywa się UserName, JSON będzie zawierał UserName. Aby uzyskać camelCase (userName), należy skonfigurować JsonSerializerOptions z PropertyNamingPolicy = JsonNamingPolicy.CamelCase. Różni się to od Newtonsoft.Json, który domyślnie używa camelCase.

4

Jak zdeserializować ciąg JSON do typowanego obiektu C#?

5

Którego atrybutu użyć, aby zignorować właściwość podczas serializacji JSON?

+17 pytań z rozmów

Opanuj .NET na następną rozmowę

Uzyskaj dostęp do wszystkich pytań, flashcards, testów technicznych, ćwiczeń code review i symulatorów rozmów.

Zacznij za darmo