Įvadas:
JSON analizavimas C# yra įprasta užduotis kūrėjams, kuriantiems programas, kurios naudoja JSON duomenis. JSON atstovauja „JavaScript“ objektų žymėjimas ir yra lengvas duomenų pateikimo kintantis formatas, kuris yra optimalus paprastiems vartotojams skaityti ir rašyti, o įrenginiams lengva analizuoti ir generuoti. Šiame straipsnyje apžvelgsime, kaip išanalizuoti JSON C# naudojant įmontuotą .NET JSON analizuoja bibliotekas.
JSON analizę C# galima pasiekti įvairiais būdais: naudojant Newtonsoft.Json biblioteka arba naudojant System.Text.Json biblioteka įvestas .NET Core 3.0 . Abi bibliotekos yra populiarūs JSON analizavimo C# pasirinkimai ir teikia panašias funkcijas.
1 būdas: „Newtonsoft.Json“ paketo naudojimas
Vienas iš populiariausių JSON analizavimo paketų C# yra Niutonsoftas.Json . Tai trečiosios šalies paketas, suteikiantis paprastą ir lankstų būdą JSON duomenims suskirstyti ir serializuoti.
Naudoti Niutonsoftas.Json C# projekte pirmiausia turite jį įdiegti. Jį galite įdiegti per NuGet paketo tvarkyklė Visual Studio arba paleisdami šią komandą paketų tvarkyklės konsolėje:
python programas
Kodas:
Install-Package Newtonsoft.Json
Įdiegę galite pradėti jį naudoti savo kode. Štai pavyzdys, kaip išanalizuoti JSON naudojant Newtonsoft.Json:
C# kodas:
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);
Šiame pavyzdyje apibrėžiame JSON eilutę ir deserializuojame ją naudodami JsonConvert.DeserializeObject pateiktas metodas Niutonsoftas.Json . Metodas grąžina dinaminį objektą, kuris leidžia pasiekti JSON duomenis naudojant nuosavybės sintaksę.
mesti eilutę kaip tarpt
2 būdas: vardų erdvės System.Text.Json naudojimas
Pradedant nuo .NET Core 3.0 ir .NET 5.0, C# taip pat teikia integruotą JSON analizavimo biblioteką, vadinamą System.Text.Json . Tai lengvas ir greitas JSON serializatorius ir deserializatorius, įtrauktas į .NET vykdymo laikas.
Štai pavyzdys, kaip išanalizuoti JSON naudojant System.Text.Json:
C# kodas:
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);
Šiame pavyzdyje mes naudojame JsonDocument.Parse pateiktas metodas System.Text.Json išanalizuoti JSON eilutę. Metodas grąžina a JsonDocument objektas, kuris atstovauja išnagrinėtus JSON duomenis. Tada galime pasiekti JSON duomenis naudodami JsonElement klasė ir jos GetProperty metodas.
3 būdas: JavaScriptSerializer klasės naudojimas
Kitas būdas išanalizuoti JSON C# yra naudoti JavaScriptSerializer klasė, kuri yra dalis System.Web.Extensions surinkimas. Ši klasė buvo pristatyta m. NET Framework 3.5 ir suteikia paprastą būdą deserializuoti JSON duomenis į stipriai įvestą objektą.
Norėdami naudoti JavaScriptSerializer klasėje, turite sukurti klasę, kuri atstovauja JSON objektą, kurį norite deserializuoti. Klasėje turi būti ypatybių, atitinkančių JSON objekto ypatybių pavadinimus ir duomenų tipus. Pavyzdžiui, tarkime, kad turite toliau pateiktą JSON objektą:
Kaip pašalinti pirmąjį simbolį „Excel“.
JSON objektas:
{ 'name': 'John Doe', 'age': 30, 'email': '[email protected]' }
Galite sukurti klasę, vaizduojančią šį objektą taip:
C# kodas:
public class Person { public string Name { get; set; } public int Age { get; set; } public string Email { get; set; } }
Apibrėžę klasę, galite naudoti JavaScript Serializer klasę, kad JSON duomenis suskirstytumėte į asmens klasės egzempliorių:
C# kodas:
kuriais metais buvo išrastas kompiuteris
string json = '{'name':'John Doe','age':30,'email':'[email protected]'}'; JavaScriptSerializer serializer = new JavaScriptSerializer(); Person person = serializer.Deserialize(json);
Anksčiau pateiktame pavyzdyje pirmiausia apibrėžėme eilutę, kurioje yra JSON duomenys. Tada sukūrėme egzempliorių JavaScript Serializer klasę ir panaudojo savo Deserialize metodą, kad išanalizuoti JSON duomenis į asmens klasės egzempliorių.
Verta pažymėti, kad JavaScript Serializer klasė turi apribojimų, palyginti su kitais dviem mūsų aptartais metodais. Pavyzdžiui, jis nepalaiko kai kurių pažangesnių JSON funkcijų, tokių kaip nulinių reikšmių tvarkymas arba konvertavimas tarp camelCase ir PascalCase pavadinimų susitarimų. Jame taip pat nėra integruoto JSON masyvų deserializavimo palaikymo.
Išvada:
Šiame straipsnyje mes ištyrėme du būdus, kaip išanalizuoti JSON C#: naudojant Newtonsoft.Json biblioteka ir naudojant System.Text.Json biblioteka. Abi bibliotekos teikia galingas JSON analizavimo galimybes ir jas plačiai naudoja kūrėjai, kuriantys C# programas, kurios naudoja JSON duomenis.