logo

JSON elemzése C#-ban

Bevezetés:

A JSON elemzése C#-ban gyakori feladat a JSON-adatokat fogyasztó alkalmazásokat készítő fejlesztők számára. JSON képviseli JavaScript objektum jelölés és egy könnyű adatábrázolás változó formátum, amely optimális a normál felhasználók számára az olvasáshoz és az íráshoz, valamint a gépek számára könnyen értelmezhető és generálható. Ebben a cikkben megvizsgáljuk, hogyan lehet a JSON-t C#-ban elemezni a beépített segítségével .NET JSON könyvtárak elemzése.

A JSON-elemzés C#-ban többféleképpen is megvalósítható: a Newtonsoft.Json könyvtár vagy a System.Text.Json könyvtár bevezetve .NET Core 3.0 . Mindkét könyvtár népszerű választás a C# nyelvű JSON-elemzéshez, és hasonló funkciókat kínál.

1. módszer: A Newtonsoft.Json csomag használata

Az egyik legnépszerűbb csomag a JSON elemzéséhez C#-ban Newtonsoft.Json . Ez egy harmadik féltől származó csomag, amely egyszerű és rugalmas módot biztosít a JSON-adatok szerializálására és deszerializálására.

Használni Newtonsoft.Json a C# projektben először telepítenie kell. A következőn keresztül telepítheti NuGet csomagkezelő be Vizuális Stúdió vagy a következő parancs futtatásával a Package Manager konzolon:

onclick js

Kód:

 Install-Package Newtonsoft.Json 

A telepítés után elkezdheti használni a kódban. Íme egy példa a JSON elemzésére Newtonsoft.Json:

C# kód:

 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); 

Ebben a példában definiálunk egy JSON karakterláncot, és deszerializáljuk a JsonConvert.DeserializeObject által biztosított módszer Newtonsoft.Json . A metódus egy dinamikus objektumot ad vissza, amely lehetővé teszi számunkra, hogy a tulajdonság szintaxisával hozzáférjünk a JSON-adatokhoz.

java tömb listázásához

2. módszer: A System.Text.Json névtér használata

Kezdve ezzel .NET Core 3.0 és .NET 5.0, A C# egy beépített JSON-elemző könyvtárat is biztosít System.Text.Json . Ez egy könnyű és gyors JSON szerializáló és deszerializáló, amely a csomag részét képezi .HÁLÓ futásidő.

Íme egy példa a JSON elemzésére System.Text.Json:

C# kód:

 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); 

Ebben a példában a JsonDocument.Parse által biztosított módszer System.Text.Json a JSON karakterlánc elemzéséhez. A metódus visszaadja a JsonDocument objektum, amely az elemzett JSON-adatokat képviseli. Ezután elérhetjük a JSON-adatokat a JsonElement osztály és annak GetProperty módszer.

3. módszer: A JavaScriptSerializer osztály használata

A JSON elemzésének másik módja C#-ban a JavaScriptSerializer osztály, amely része a System.Web.Extensions összeszerelés. Ezt az osztályt ben vezették be. NET-keretrendszer 3.5 és egyszerű módot biztosít a JSON-adatok erősen típusú objektummá történő deszerializálására.

hogyan kell szkriptet futtatni linux alatt

Használatához a JavaScriptSerializer osztályt, létre kell hoznia egy osztályt, amely a deszerializálni kívánt JSON-objektumot képviseli. Az osztálynak olyan tulajdonságokkal kell rendelkeznie, amelyek megegyeznek a JSON-objektum tulajdonságainak nevével és adattípusaival. Tegyük fel például, hogy rendelkezik az alábbi JSON objektummal:

JSON objektum:

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

Létrehozhat egy osztályt, amely ezt az objektumot reprezentálja a következőképpen:

android játszhat gamepigeon-nal

C# kód:

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

Miután meghatározta az osztályt, használhatja a JavaScriptSerializer osztályt a JSON-adatok deserializálásához a Person osztály egy példányává:

C# kód:

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

A fenti példában először definiáltunk egy JSON-adatokat tartalmazó karakterláncot. Ezután létrehoztunk egy példányt a JavaScriptSerializer osztályt, és a Deserialize metódusával elemezte a JSON-adatokat a Person osztály egy példányába.

Érdemes megjegyezni, hogy a JavaScriptSerializer osztálynak vannak korlátai az általunk tárgyalt másik két módszerhez képest. Például nem támogatja a JSON egyes fejlettebb funkcióit, például a null értékek kezelését vagy a camelCase és a PascalCase elnevezési konvenciók közötti átalakítást. Ezenkívül nem támogatja a JSON-tömbök deszerializálását.

Következtetés:

Ebben a cikkben a JSON elemzésének két módját vizsgáltuk meg C#-ban: a Newtonsoft.Json könyvtár és a System.Text.Json könyvtár. Mindkét könyvtár hatékony JSON-elemzési képességet biztosít, és széles körben használják a JSON-adatokat fogyasztó C#-alkalmazásokat készítő fejlesztők.