NumberHandling
NumberHandling с
AllowReadingFromString читает
JSON-строку "12345" в int.
Без флага та же строка даёт
JsonException. Задаётся в
JsonSerializerOptions.
Синтаксис
options.NumberHandling =
JsonNumberHandling.AllowReadingFromString;
Пример
Давайте разобрать число из строки JSON:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Program
{
static void Main()
{
var options = new JsonSerializerOptions
{
NumberHandling =
JsonNumberHandling.AllowReadingFromString
};
int res = JsonSerializer.Deserialize<int>(
"\"12345\"", options);
Console.WriteLine(res);
}
}
Результат выполнения кода:
12345
Пример
Давайте разобрать без флага:
using System;
using System.Text.Json;
class Program
{
static void Main()
{
try
{
JsonSerializer.Deserialize<int>("\"12345\"");
}
catch (JsonException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте разобрать обычное число без кавычек:
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
class Program
{
static void Main()
{
var options = new JsonSerializerOptions
{
NumberHandling =
JsonNumberHandling.AllowReadingFromString
};
int res = JsonSerializer.Deserialize<int>("12345", options);
Console.WriteLine(res);
}
}
Результат выполнения кода:
12345
Смотрите также
-
Deserialize,
разбор JSON -
JsonSerializerOptions,
объект настроек -
JsonConverter,
свой формат числа -
Serialize,
запись чисел