Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Lo spazio dei nomi System.Text.Json fornisce funzionalità per la serializzazione e deserializzazione (o marshalling e unmarshalling) di JavaScript Object Notation (JSON). La serializzazione è il processo di conversione dello stato di un oggetto, ovvero dei valori delle relative proprietà, in un formato che può essere archiviato o trasmesso. Il formato serializzato non include informazioni sui metodi associati di un oggetto. La deserializzazione ricostruisce un oggetto dal formato serializzato.
La struttura della libreria System.Text.Json
privilegia le prestazioni elevate e la bassa allocazione di memoria rispetto a un set di funzionalità esteso. Il supporto predefinito per UTF-8 ottimizza il processo di lettura e scrittura del testo JSON con codifica UTF-8, che è quella più diffusa per i dati sul Web e per i file su disco.
La libreria fornisce anche classi per l'uso di un modello DOM (Document Object Model) in memoria. Questa funzionalità consente l'accesso casuale agli elementi in una stringa o un file JSON.
Per Visual Basic esistono alcune limitazioni in merito alle parti della libreria che è possibile usare. Per altre informazioni, vedere Supporto di Visual Basic.
Come ottenere la libreria
La libreria è incorporata nel framework condiviso per .NET Core 3.0 e versioni successive. La funzionalità di generazione del codice è incorporata nel framework condiviso per .NET 6 e versioni successive.
Per le versioni del framework precedenti a .NET Core 3.0, installare il pacchetto NuGet System.Text.Json. Il pacchetto supporta:
- .NET Standard 2.0 e versioni successive
- .NET Framework 4.6.2 e versioni successive
- .NET 8 e versioni successive
Namespace e API
- Lo spazio dei nomi System.Text.Json contiene tutti i punti di ingresso e i tipi principali.
- Lo spazio dei nomi System.Text.Json.Serialization contiene attributi e API per personalizzazione e scenari avanzati specifici per la serializzazione e la deserializzazione.
- Lo spazio dei nomi System.Net.Http.Json contiene metodi di estensione per la serializzazione e deserializzazione dei payload JSON sulla rete.
Importante
System.Text.Json
non supporta le API di serializzazione seguenti che potrebbero essere state usate in precedenza:
- Attributi dallo spazio dei nomi System.Runtime.Serialization.
- Attributo System.SerializableAttribute e interfaccia ISerializable. Questi tipi vengono usati solo per la serializzazione in formato binario e XML.
Reflection contro generazione del codice sorgente
Per impostazione predefinita, System.Text.Json
raccoglie i metadati necessari per accedere alle proprietà degli oggetti per la serializzazione e la deserializzazione in fase di esecuzione tramite reflection. In alternativa, System.Text.Json
può usare la funzionalità di generazione dell'origine di C# per migliorare le prestazioni, ridurre l'utilizzo della memoria privata e facilitare il taglio dell'assembly, riducendo così le dimensioni dell'app.
Per altre informazioni, vedere Reflection contro generazione di codice sorgente.
Informazioni sulla sicurezza
Per informazioni sulle minacce alla sicurezza considerate durante la progettazione di JsonSerializer e su come attenuarle, vedere Modello di minaccia di System.Text.Json
.
Sicurezza dei thread
Il serializzatore System.Text.Json
è stato progettato tenendo conto della sicurezza dei thread. In pratica, questo significa che una volta bloccate, le istanze di JsonSerializerOptions possono essere condivise in modo sicuro tra più thread.
JsonDocument fornisce una rappresentazione DOM non modificabile e thread-safe (in .NET 8 e nelle versioni successive) per i valori di JSON.