JSON
W języku C# istnieje kilka bibliotek, które umożliwiają pracę z danymi JSON. Jedną z najpopularniejszych jest Newtonsoft.Json, która zapewnia funkcje do serializacji i deserializacji danych JSON. Można ją łatwo zaimportować za pomocą narzędzia NuGet. Innymi popularnymi bibliotekami są System.Text.Json oraz Json.NET.
Newtonsoft.Json
to biblioteka, która jest szeroko stosowana w języku C# do pracy z danymi JSON.
Umożliwia ona łatwą serializacje
i
deserializacje
obiektów C# do formatu JSON oraz odwrotnie.
Aby użyć tej biblioteki, należy ją najpierw zaimportować za pomocą narzędzia NuGet. Następnie, w celu zserializowania obiektu do formatu JSON, można użyć metody JsonConvert.SerializeObject() i podać obiekt jako argument. Analogicznie, aby zdeserializować dane JSON do obiektu C#, można użyć metody JsonConvert.DeserializeObject() i podać typ obiektu docelowego oraz dane JSON jako argumenty.
Oto przykład serializacji obiektu C# do formatu JSON za pomocą biblioteki Newtonsoft.Json:
using System;
using Newtonsoft.Json;
class Student
{
public string Imie { get; set; }
public string Nazwisko { get; set; }
public int Wiek { get; set; }
}
class Program
{
static void Main(string[] args)
{
Student student = new Student
{
Imie = "Jan",
Nazwisko = "Kowalski",
Wiek = 20
};
string json = JsonConvert.SerializeObject(student);
Console.WriteLine(json);
}
}
{"Imie":"Jan", "Nazwisko":"Kowalski", "Wiek":20}
Kod powyżej tworzy obiekt typu Student i przypisuje mu odpowiednie wartości. Następnie, obiekt ten jest serializowany do formatu JSON za pomocą metody JsonConvert.SerializeObject() i wynik jest wyświetlany na konsoli.
Oto przykład deserializacji danych JSON do obiektu C# za pomocą biblioteki Newtonsoft.Json:
using System;
using Newtonsoft.Json;
class Student
{
public string Imie { get; set; }
public string Nazwisko { get; set; }
public int Wiek { get; set; }
}
class Program
{
static void Main(string[] args)
{
string json = "{\"Imie\":\"Jan\",\"Nazwisko\":\"Kowalski\",\"Wiek\":20}";
Student student = JsonConvert.DeserializeObject<Student>(json);
Console.WriteLine("Imie: " + student.Imie);
Console.WriteLine("Nazwisko: " + student.Nazwisko);
Console.WriteLine("Wiek: " + student.Wiek);
}
}
Imie: Jan
Nazwisko: Kowalski
Wiek: 20
W powyższym przykładzie, dane JSON są przypisane do zmiennej json. Następnie, dane te są deserializowane do obiektu typu Student za pomocą metody JsonConvert.DeserializeObject(). Obiekt ten jest następnie wykorzystywany do wyświetlenia poszczególnych właściwości na konsoli.
Poniżej przedstawiam kolejny przykład użycia biblioteki Newtonsoft.Json do serializacji i deserializacji danych JSON w języku C#:
using System;
using System.Collections.Generic;
using Newtonsoft.Json;
class Program
{
static void Main(string[] args)
{
// Tworzymy listę obiektów do serializacji
var produkty = new List<Produkt>
{
new Produkt { Nazwa = "Jablko", Cena = 2.5 },
new Produkt { Nazwa = "Banan", Cena = 1.5 },
new Produkt { Nazwa = "Pomarańcza", Cena = 3.5 }
};
// Serializujemy listę do formatu JSON
string json = JsonConvert.SerializeObject(produkty);
Console.WriteLine(json);
// Deserializujemy dane JSON do listy obiektów C#
List<Produkt> produkty2 = JsonConvert.DeserializeObject<List<Produkt>>(json);
foreach (var produkt in produkty2)
{
Console.WriteLine(produkt.Nazwa + " - " + produkt.Cena);
}
}
}
class Produkt
{
public string Nazwa { get; set; }
public double Cena { get; set; }
}
[{"Nazwa":"Jablko","Cena":2.5}, {"Nazwa":"Banan","Cena":1.5}, {"Nazwa":"Pomarańcza","Cena":3.5}]
Jablko - 2,5
Banan - 1,5
Pomarańcza - 3,5
W powyższym przykładzie tworzymy listę obiektów klasy Produkt z kilkoma właściwościami. Następnie korzystając z metody JsonConvert.SerializeObject() serializujemy listę do formatu JSON i wyświetlamy ją na konsoli. Potem za pomocą metody JsonConvert.DeserializeObject<T>() deserializujemy dane JSON do listy obiektów C# i wyświetlamy informacje o każdym produkcie.
Json.NET to kolejna popularna biblioteka do pracy z danymi JSON w języku C#. Podobnie jak Newtonsoft.Json, umożliwia ona łatwą serializację i deserializację obiektów C# do formatu JSON oraz odwrotnie. Biblioteka ta oferuje również dodatkowe funkcje takie jak obsługa linii typów, kontrola formatowania, a także możliwość dostosowywania procesu serializacji i deserializacji za pomocą atrybutów i konwerterów.