logo

Analizza JSON in C#

Introduzione:

L'analisi di JSON in C# è un'attività comune per gli sviluppatori che creano applicazioni che utilizzano dati JSON. JSON rappresenta Notazione oggetto JavaScript ed è un formato leggero che cambia la rappresentazione dei dati, ottimale per la lettura e la scrittura degli utenti normali e facile da analizzare e generare per le macchine. In questo articolo vedremo come analizzare JSON in C# utilizzando il metodo integrato .NETJSON analisi delle librerie.

L'analisi JSON in C# può essere ottenuta in diversi modi: utilizzando il file Libreria Newtonsoft.Json o utilizzando il Libreria System.Text.Json introdotto in .NET Core 3.0 . Entrambe le librerie sono scelte popolari per l'analisi JSON in C# e forniscono funzionalità simili.

Metodo 1: utilizzo del pacchetto Newtonsoft.Json

Uno dei pacchetti più popolari per l'analisi JSON in C# è Newtonsoft.Json . È un pacchetto di terze parti che fornisce un modo semplice e flessibile per serializzare e deserializzare i dati JSON.

Usare Newtonsoft.Json nel tuo progetto C#, devi prima installarlo. Puoi installarlo tramite il file NuGet gestore pacchetti in Studio visivo oppure eseguendo il comando seguente nella console di gestione pacchetti:

Iteratore Java per la mappa

Codice:

 Install-Package Newtonsoft.Json 

Una volta installato, puoi iniziare a utilizzarlo nel tuo codice. Ecco un esempio di come analizzare JSON utilizzando Newtonsoft.Json:

Codice C#:

 using Newtonsoft.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; dynamic data = JsonConvert.DeserializeObject(json); string name = data.name; int age = data.age; string city = data.city; Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

In questo esempio, definiamo una stringa JSON e la deserializziamo utilizzando il file JsonConvert.DeserializeObject metodo fornito da Newtonsoft.Json . Il metodo restituisce un oggetto dinamico, che ci consente di accedere ai dati JSON utilizzando la sintassi delle proprietà.

banda base vs banda larga

Metodo 2: utilizzo dello spazio dei nomi System.Text.Json

Iniziare con .NET Core 3.0 E .NET 5.0, C# fornisce anche una libreria di analisi JSON incorporata denominata System.Text.Json . È un serializzatore e deserializzatore JSON leggero e veloce incluso nel file .NETTO tempo di esecuzione.

Ecco un esempio di come analizzare JSON utilizzando System.Text.Json:

Codice C#:

 using System.Text.Json; string json = @'{ 'name': 'John', 'age': 30, 'city': 'New York' }'; JsonDocument doc = JsonDocument.Parse(json); JsonElement root = doc.RootElement; string name = root.GetProperty('name').GetString(); int age = root.GetProperty('age').GetInt32(); string city = root.GetProperty('city').GetString(); Console.WriteLine('Name: ' + name); Console.WriteLine('Age: ' + age); Console.WriteLine('City: ' + city); 

In questo esempio utilizziamo il file JsonDocument.Parse metodo fornito da System.Text.Json per analizzare la stringa JSON. Il metodo restituisce a JsonDocument oggetto, che rappresenta i dati JSON analizzati. Possiamo quindi accedere ai dati JSON utilizzando il file JsonElement classe e il suo OttieniProprietà metodo.

json dall'oggetto Java

Metodo 3: utilizzo della classe JavaScriptSerializer

Un altro modo per analizzare JSON in C# è utilizzare il file JavaScriptSerializer classe, che fa parte di System.Web.Extensions assemblaggio. Questa classe è stata introdotta in . NET Framework 3.5 e fornisce un modo semplice per deserializzare i dati JSON in un oggetto fortemente tipizzato.

Per utilizzare il JavaScriptSerializer class, devi creare una classe che rappresenti l'oggetto JSON che desideri deserializzare. La classe deve avere proprietà che corrispondono ai nomi e ai tipi di dati delle proprietà dell'oggetto JSON. Ad esempio, supponiamo di avere l'oggetto JSON seguente:

Oggetto JSON:

 { 'name': 'John Doe', 'age': 30, 'email': '[email protected]' } 

È possibile creare una classe che rappresenti questo oggetto come segue:

Codice C#:

 public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } } 

Una volta definita la classe, è possibile utilizzare il file JavaScriptSerializer classe per deserializzare i dati JSON in un'istanza della classe Person:

lattice di dimensione carattere

Codice C#:

 string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json); 

Nell'esempio sopra, abbiamo prima definito una stringa contenente i dati JSON. Abbiamo quindi creato un'istanza di JavaScriptSerializer class e ha utilizzato il metodo Deserialize per analizzare i dati JSON in un'istanza della classe Person.

Vale la pena notare che il JavaScriptSerializer La classe presenta delle limitazioni rispetto agli altri due metodi di cui abbiamo discusso. Ad esempio, non supporta alcune delle funzionalità più avanzate di JSON, come la gestione di valori null o la conversione tra le convenzioni di denominazione camelCase e PascalCase. Inoltre non dispone del supporto integrato per la deserializzazione degli array JSON.

Conclusione:

In questo articolo abbiamo esplorato due modi per analizzare JSON in C#: utilizzando il file Newtonsoft.Json libreria e utilizzando il file System.Text.Json biblioteca. Entrambe le librerie forniscono potenti funzionalità di analisi JSON e sono ampiamente utilizzate dagli sviluppatori che creano applicazioni C# che utilizzano dati JSON.