Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Пространство имен System.Text.Json предоставляет функциональные возможности для сериализации и десериализации (или маршаллинга и демаршаллинга) нотации объектов JavaScript (JSON). Сериализация — это процесс преобразования состояния объекта, то есть значений его свойств в форму, которая может храниться или передаваться. Сериализованная форма не содержит никаких сведений о связанных методах объекта. Десериализация восстанавливает объект из сериализованной формы.
Дизайн System.Text.Json библиотеки подчеркивает высокую производительность и низкое выделение памяти по обширному набору функций. Встроенная поддержка UTF-8 оптимизирует процесс чтения и записи текста JSON в кодировке UTF-8, которая является наиболее распространенной кодировкой для данных в Интернете и файлов на диске.
Библиотека также предоставляет классы для работы с объектной моделью документа в памяти (DOM). Эта функция обеспечивает случайный доступ к элементам в JSON-файле или строке.
Для Visual Basic существуют некоторые ограничения на то, какие части библиотеки можно использовать. Дополнительные сведения см. в статье о поддержке Visual Basic.
Получение библиотеки
Библиотека входит в состав общей платформы для .NET Core 3.0 и более поздних версий. Функция создания источника встроена в общую платформу для .NET 6 и более поздних версий.
Для версий платформы, предшествующих .NET Core 3.0, установите System.Text.Json пакет NuGet. Пакет поддерживает:
- .NET Standard 2.0 и более новые версии
- платформа .NET Framework 4.6.2 и более поздних версий
- .NET 8 и более поздних версий
Пространства имен и API
- Пространство имен System.Text.Json содержит все точки входа и основные типы.
- Пространство имен System.Text.Json.Serialization содержит атрибуты и интерфейсы API для сложных сценариев и настройки, характерной для сериализации и десериализации.
- Пространство имен System.Net.Http.Json содержит методы расширения для сериализации и десериализации полезных данных JSON из сети.
Внимание
System.Text.Json не поддерживает следующие API сериализации, которые вы могли использовать ранее:
- Атрибуты из System.Runtime.Serialization пространства имен.
- Атрибут System.SerializableAttribute и ISerializable интерфейс. Эти типы используются только для сериализации двоичных и XML-файлов.
Сравнение отражения и создания источника
По умолчанию System.Text.Json система собирает метаданные, которые необходимы для доступа к свойствам объектов для сериализации и десериализации во время выполнения с помощью рефлексии. В качестве альтернативы System.Text.Json может использовать функцию генерации исходного кода на C#, чтобы повысить производительность, уменьшить использование выделенной памяти и упростить оптимизацию сборок, что сокращает размер приложения.
Дополнительные сведения см. в разделе "Отражение и создание источника".
Сведения о безопасности
Сведения об угрозах безопасности, которые рассматривались при разработке JsonSerializerи способах их устранения, см. в статье System.Text.Json "Модель угроз".
Потокобезопасность
Сериализатор System.Text.Json был разработан с учетом безопасности потоков. Практически это означает, что после блокировки JsonSerializerOptions экземпляры можно безопасно совместно использовать в нескольких потоках.
JsonDocument предоставляет DOM-представление для значений JSON, которое является неизменяемым и потокобезопасным в .NET 8 и более поздних версиях.