Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
O namespace System.Text.Json fornece funcionalidade para serializar e desserializar (ou empacotar e desempacotar) JavaScript Object Notation (JSON). Serialização é o processo de converter o estado de um objeto, ou seja, os valores de suas propriedades, em uma forma que pode ser armazenada ou transmitida. O formulário serializado não inclui nenhuma informação sobre os métodos associados de um objeto. A desserialização reconstrói um objeto a partir do formulário serializado.
O design da System.Text.Json
biblioteca enfatiza o alto desempenho e a baixa alocação de memória em um extenso conjunto de recursos. O suporte UTF-8 integrado otimiza o processo de leitura e gravação de texto JSON codificado como UTF-8, que é a codificação mais prevalente para dados na Web e arquivos no disco.
A biblioteca também fornece classes para trabalhar com um modelo de objeto de documento (DOM) na memória. Esse recurso permite o acesso aleatório aos elementos em um arquivo JSON ou cadeia de caracteres.
Para o Visual Basic, há algumas limitações sobre quais partes da biblioteca você pode usar. Para obter mais informações, consulte Suporte do Visual Basic.
Como obter a biblioteca
A biblioteca é integrada como parte da plataforma partilhada para .NET Core 3.0 e versões posteriores. A funcionalidade de geração de código está integrada como parte da estrutura partilhada para o .NET 6 e versões posteriores.
Para versões de estrutura anteriores ao .NET Core 3.0, instale o System.Text.Json pacote NuGet. O pacote suporta:
- .NET Standard 2.0 e posterior
- .NET Framework 4.6.2 e posterior
- .NET 8 e posterior
Namespaces e APIs
- O System.Text.Json namespace contém todos os pontos de entrada e os tipos principais.
- O System.Text.Json.Serialization namespace contém atributos e APIs para cenários avançados e personalização específica para serialização e desserialização.
- O namespace System.Net.Http.Json contém métodos de extensão para serializar e desserializar cargas JSON a partir da rede.
Importante
System.Text.Json
não suporta as seguintes APIs de serialização que você pode ter usado anteriormente:
- Atributos do System.Runtime.Serialization namespace.
- O System.SerializableAttribute atributo e a ISerializable interface. Esses tipos são usados apenas para serialização binária e XML.
Reflexão vs. geração de fontes
Por padrão, System.Text.Json
reúne os metadados necessários para acessar propriedades de objetos para serialização e desserialização em tempo de execução usando reflexão. Como alternativa, System.Text.Json
pode usar o recurso de geração de código-fonte C# para melhorar o desempenho, reduzir o uso de memória privada e facilitar o corte de montagem, o que reduz o tamanho do aplicativo.
Para obter mais informações, consulte Reflexão versus geração de fonte.
Informações de segurança
Para obter informações sobre ameaças à segurança que foram consideradas ao projetar JsonSerializere como elas podem ser atenuadas, consulte System.Text.Json
Modelo de ameaça.
Segurança de roscas
O System.Text.Json
serializador foi projetado com a segurança do thread em mente. Na prática, isso significa que, uma vez bloqueadas, as instâncias JsonSerializerOptions podem ser seguras para serem compartilhadas em vários threads.
JsonDocument fornece uma representação DOM imutável para valores JSON que, no .NET 8 e versões posteriores, é thread-safe.