Десериализация JSON в объект в C#
Объект собирают из JSON по именам свойств. Если
тип значения в тексте не совпадает с типом
свойства, разбор бросает JsonException.
Такую ошибку ловят там, где строку получили
извне.
Корректная строка даёт Units=3:
class Label
{
public string Name { get; set; } = "";
public int Units { get; set; }
}
using System.Text.Json;
string text = "{\"Name\":\"box\",\"Units\":3}";
Label? label = JsonSerializer.Deserialize<Label>(text);
Console.WriteLine(label?.Units);
class Label
{
public string Name { get; set; } = "";
public int Units { get; set; }
}
Строка с текстом вместо числа для Units
ломает разбор - печатаем "fail":
using System.Text.Json;
try
{
JsonSerializer.Deserialize<Label>("{\"Name\":\"box\",\"Units\":\"x\"}");
}
catch (JsonException)
{
Console.WriteLine("fail");
}
class Label
{
public string Name { get; set; } = "";
public int Units { get; set; }
}
Из JSON "{"Rooms":2}" получите число
комнат и выведите удвоенное значение.