logo

Analýza JSON v C#

Úvod:

Analýza JSON v C# je běžným úkolem pro vývojáře vytvářející aplikace, které spotřebovávají data JSON. JSON představuje Zápis objektů JavaScript a je to odlehčený formát měnící se reprezentace dat, který je optimální pro běžné uživatele ke čtení a zápisu a pro stroje je snadné jej analyzovat a generovat. V tomto článku se podíváme, jak analyzovat JSON v C# pomocí vestavěného .NET JSON parsování knihoven.

JSON Parsování v C# lze dosáhnout různými způsoby: pomocí Knihovna Newtonsoft.Json nebo pomocí Knihovna System.Text.Json představen v .NET Core 3.0 . Obě knihovny jsou oblíbenou volbou pro analýzu JSON v C# a poskytují podobné funkce.

Metoda 1: Použití balíčku Newtonsoft.Json

Jeden z nejoblíbenějších balíčků pro analýzu JSON v C# je Newtonsoft.Json . Jedná se o balíček třetí strany, který poskytuje jednoduchý a flexibilní způsob serializace a deserializace dat JSON.

Použít Newtonsoft.Json ve vašem projektu C# jej musíte nejprve nainstalovat. Můžete jej nainstalovat přes NuGet správce balíčků v Vizuální studio nebo spuštěním následujícího příkazu v konzole Správce balíčků:

výjimka nullpointer

Kód:

 Install-Package Newtonsoft.Json 

Po instalaci jej můžete začít používat ve svém kódu. Zde je příklad, jak analyzovat JSON pomocí 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); 

V tomto příkladu definujeme řetězec JSON a deserializujeme jej pomocí JsonConvert.DeserializeObject metoda poskytovaná Newtonsoft.Json . Metoda vrací dynamický objekt, který nám umožňuje přistupovat k datům JSON pomocí syntaxe vlastnosti.

slice java pole

Metoda 2: Použití oboru názvů System.Text.Json

Začínání s .NET Core 3.0 a .NET 5.0, C# také poskytuje vestavěnou knihovnu JSON Parsing s názvem System.Text.Json . Jedná se o lehký a rychlý JSON serializátor a deserializátor, který je součástí .SÍŤ runtime.

Zde je příklad, jak analyzovat JSON pomocí 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); 

V tomto příkladu používáme JsonDocument.Parse metoda poskytovaná System.Text.Json k analýze řetězce JSON. Metoda vrací a JsonDocument objekt, který představuje analyzovaná data JSON. Poté můžeme přistupovat k datům JSON pomocí JsonElement třída a její GetProperty metoda.

Metoda 3: Použití třídy JavaScriptSerializer

Dalším způsobem, jak analyzovat JSON v C#, je použití JavaScript serializátor třídy, která je součástí System.Web.Extensions shromáždění. Tato třída byla zavedena v . NET Framework 3.5 a poskytuje jednoduchý způsob, jak deserializovat data JSON na objekt se silným typem.

Chcete-li použít JavaScript serializátor class, musíte vytvořit třídu, která reprezentuje objekt JSON, který chcete deserializovat. Třída by měla mít vlastnosti, které odpovídají názvům a datovým typům vlastností objektu JSON. Předpokládejme například, že máte níže uvedený objekt JSON:

deterministické konečné automaty

Objekt JSON:

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

Třídu reprezentující tento objekt můžete vytvořit následovně:

C# kód:

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

Jakmile definujete třídu, můžete použít JavaScript serializátor třídy k deserializaci dat JSON do instance třídy Person:

C# kód:

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

Ve výše uvedeném příkladu jsme nejprve definovali řetězec obsahující data JSON. Poté jsme vytvořili instanci JavaScript serializátor class a použil svou metodu Deserialize k analýze dat JSON do instance třídy Person.

Stojí za zmínku, že JavaScript serializátor třída má omezení ve srovnání s dalšími dvěma metodami, o kterých jsme hovořili. Nepodporuje například některé pokročilejší funkce JSON, jako je zpracování hodnot null nebo převod mezi konvencemi pojmenování camelCase a PascalCase. Nemá také vestavěnou podporu pro deserializaci polí JSON.

Závěr:

V tomto článku jsme prozkoumali dva způsoby, jak analyzovat JSON v C#: pomocí Newtonsoft.Json knihovny a používání System.Text.Json knihovna. Obě knihovny poskytují výkonné možnosti analýzy JSON a jsou široce používány vývojáři vytvářejícími aplikace C#, které spotřebovávají data JSON.