Udostępnij za pośrednictwem


Serializacja i deserializacja JSON na platformie .NET — omówienie

Przestrzeń nazw System.Text.Json zapewnia funkcjonalność serializacji i deserializacji (lub marshalingu i unmarshalingu) JavaScript Object Notation (JSON). Serializacja to proces konwertowania stanu obiektu, czyli wartości jego właściwości na formularz, który można przechowywać lub przesyłać. Formularz serializowany nie zawiera żadnych informacji o metodach skojarzonych z obiektem. Deserializacja rekonstrukuje obiekt z postaci serializowanej.

Projekt System.Text.Json biblioteki podkreśla wysoką wydajność i niską alokację pamięci w ramach rozbudowanego zestawu funkcji. Wbudowana obsługa protokołu UTF-8 optymalizuje proces odczytywania i zapisywania tekstu JSON zakodowanego jako UTF-8, który jest najbardziej rozpowszechnionym kodowaniem danych w internecie i plikach na dysku.

Biblioteka udostępnia również klasy do pracy z modelem obiektów dokumentów w pamięci (DOM). Ta funkcja umożliwia losowy dostęp do elementów w pliku lub ciągu JSON.

W przypadku języka Visual Basic istnieją pewne ograniczenia dotyczące części biblioteki, których można użyć. Aby uzyskać więcej informacji, zobacz Obsługa języka Visual Basic.

Jak pobrać bibliotekę

Biblioteka jest wbudowana w ramach struktury udostępnionej dla platformy .NET Core 3.0 i nowszych wersji. Funkcja generowania źródła jest wbudowana w ramach platformy udostępnionej dla platformy .NET 6 i nowszych wersji.

W przypadku wersji platformy starszej niż .NET Core 3.0 zainstaluj System.Text.Json pakiet NuGet. Pakiet obsługuje:

  • .NET Standard 2.0 lub nowszy
  • .NET Framework 4.6.2 i nowsze
  • .NET 8 lub nowszy

Przestrzenie nazw i interfejsy API

Ważne

System.Text.Json program nie obsługuje następujących interfejsów API serializacji, które mogły być wcześniej używane:

Odbicie a generowanie źródła

Domyślnie zbiera metadane, System.Text.Json których potrzebuje, aby uzyskać dostęp do właściwości obiektów na potrzeby serializacji i deserializacji w czasie wykonywania przy użyciu odbicia. Alternatywnie można użyć funkcji generowaniaSystem.Text.Json, aby zwiększyć wydajność, zmniejszyć użycie pamięci prywatnej i ułatwić przycinanie zestawów, co zmniejsza rozmiar aplikacji.

Aby uzyskać więcej informacji, zobacz Odbicie i generowanie źródła.

Informacje o zabezpieczeniach

Aby uzyskać informacje na temat zagrożeń bezpieczeństwa, które zostały uwzględnione podczas projektowania JsonSerializeri sposobu ich ograniczenia, zobacz System.Text.Json Model zagrożeń.

Bezpieczeństwo wątkowe

System.Text.Json Serializator został zaprojektowany z myślą o bezpieczeństwie wątków. Praktycznie oznacza to, że po zablokowaniu JsonSerializerOptions wystąpienia mogą być bezpiecznie współużytkowane przez wiele wątków. JsonDocument udostępnia niezmienną reprezentację modelu DOM dla wartości JSON w wersjach .NET 8 i nowszych.

Dodatkowe zasoby