Sdílet prostřednictvím


Serializace JSON a deserializace v .NET – přehled

Obor názvů System.Text.Json poskytuje funkce pro serializaci do a deserializaci z javascriptového objektového zápisu (JSON). Serializace je proces převodu stavu objektu, tj. hodnoty jeho vlastností, do formuláře, který lze uložit nebo přenést. Serializovaný formulář neobsahuje žádné informace o přidružených metodách objektu. Deserializace rekonstruuje objekt ze serializované formy.

Návrh System.Text.Json knihovny zdůrazňuje vysoký výkon a nízké přidělení paměti nad rozsáhlou sadou funkcí. Integrovaná podpora UTF-8 optimalizuje proces čtení a zápisu textu JSON kódovaného jako UTF-8, což je nejběžnější kódování dat na webu a souborech na disku.

Knihovna také poskytuje třídy pro práci s objektovým modelem dokumentu v paměti (DOM). Tato funkce umožňuje náhodný přístup k prvkům v souboru NEBO řetězci JSON.

Pro Visual Basic platí určitá omezení pro části knihovny, které můžete použít. Další informace naleznete v tématu Podpora jazyka Visual Basic.

Jak získat knihovnu

Knihovna je integrovaná jako součást sdíleného rozhraní pro .NET Core 3.0 a novější verze. Funkce generování zdroje je integrovaná jako součást sdílené architektury pro .NET 6 a novější verze.

Pro verze rozhraní starší než .NET Core 3.0 nainstalujte System.Text.Json balíček NuGet. Balíček podporuje:

  • .NET Standard 2.0 a novější
  • .NET Framework 4.6.2 a novější
  • .NET 8 a novější

Obory názvů a rozhraní API

Důležité

System.Text.Json nepodporuje následující rozhraní API serializace, která jste mohli použít dříve:

Reflexe versus generování zdroje

Ve výchozím nastavení shromažďuje metadata, System.Text.Json která potřebuje pro přístup k vlastnostem objektů pro serializaci a deserializaci za běhu pomocí reflexe. Jako alternativu System.Text.Json můžete pomocí funkce generování zdroje C# zlepšit výkon, snížit využití privátní paměti a usnadnit oříznutí sestavení, což snižuje velikost aplikace.

Další informace najdete v tématu Reflexe a generování zdroje.

Informace o zabezpečení

Informace o bezpečnostních hrozbách, které byly při návrhu zvažovány JsonSerializera jak je lze zmírnit, najdete v tématu System.Text.Json Model hrozeb.

Bezpečnost vlákna

System.Text.Json Serializátor byl navržen s ohledem na bezpečnost vláken. Prakticky to znamená, že po uzamčení JsonSerializerOptions se instance dají bezpečně sdílet napříč několika vlákny. JsonDocument poskytuje neměnnou a v .NET 8 a novějších verzích reprezentaci MODELU DOM pro hodnoty JSON.

Další materiály