Co to jest serializacja?
W prostych słowach Serializacja to proces w którym obiekt, czasami bardzo skomplikowany, w języku C# zamieniamy na tekst (zwykle w postaci JSON albo XML). Robimy to po to, żeby na przykład zapisać dany obiekt w bazie danych, lub przesłać go do innego systemu. Łatwiej jest przecież wysłać jeden napis, niż obiekt składający się z wielu pól a czasami również tablic.
Co to jest deserializacja?
Deserializacja jest procesem odwrotnym do serializacji. Wyobraź sobie, że ktoś Tobie przesłał z zewnętrznego systemu obiekt w postaci JSON. Czyli mamy jeden długi napis zawierający wszystkie informacje o obiekcie. A docelowo, żeby wykonać operacje w naszym systemie potrzebujemy obiektu. Używamy wtedy właśnie deserializacji.
Przykład deserializacji języku C#
using System;
using System.Collections.Generic;
using System.Linq;
using Newtonsoft.Json;
namespace Serializacja
{
class Program
{
static void Main(string[] args)
{
string test = "[{\"identyfikator\":\"1\",\"imie\":\"Dariusz\",\"nazwisko\":\"Kacban\"}]";var deserialized = JsonConvert.DeserializeObject<List<Person>>(test);
Console.WriteLine(deserialized.First());
}
}
public class Person
{
[JsonProperty("identyfikator")]
public string Id { get; set; }
[JsonProperty("imie")]
public string Name { get; set; }
[JsonProperty("nazwisko")]
public string Surname { get; set; }
public override string ToString()
{
return $"identyfikator: {Id}, imie: {Name}, nazwisko: {Surname}";
}
}
}