Deserialize
JsonSerializer.Deserialize<T>
разбирает корректный JSON. Неверный тип
даёт JsonException. Лишние свойства
в JSON по умолчанию игнорируются.
Запись -
Serialize.
Синтаксис
T value = JsonSerializer.Deserialize<T>(json);
Пример
Давайте разобрать число:
using System;
using System.Text.Json;
class Program
{
static void Main()
{
int res = JsonSerializer.Deserialize<int>("12345");
Console.WriteLine(res);
}
}
Результат выполнения кода:
12345
Пример
Давайте поймаем неверный JSON для int:
using System;
using System.Text.Json;
class Program
{
static void Main()
{
try
{
JsonSerializer.Deserialize<int>("abcde");
}
catch (JsonException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте игнорировать лишнее свойство:
using System;
using System.Text.Json;
class Item
{
public string Name { get; set; }
}
class Program
{
static void Main()
{
Item res = JsonSerializer.Deserialize<Item>(
"{\"Name\":\"abcde\",\"Extra\":1}");
Console.WriteLine(res.Name);
}
}
Результат выполнения кода:
"abcde"
Смотрите также
-
Serialize,
запись JSON -
PropertyNameCaseInsensitive,
регистр имён -
AllowTrailingCommas,
хвостовая запятая -
JsonSerializer,
класс сериализатора