AllowTrailingCommas
AllowTrailingCommas = true читает
"{"Name":"abcde",}". Без флага
хвостовая запятая даёт JsonException.
Задаётся в
JsonSerializerOptions
для
Deserialize.
Синтаксис
options.AllowTrailingCommas = true;
Пример
Давайте разобрать JSON с хвостовой запятой:
using System;
using System.Text.Json;
class Item
{
public string Name { get; set; }
}
class Program
{
static void Main()
{
var options = new JsonSerializerOptions
{
AllowTrailingCommas = true
};
Item item = JsonSerializer.Deserialize<Item>(
"{\"Name\":\"abcde\",}", options);
Console.WriteLine(item.Name);
}
}
Результат выполнения кода:
"abcde"
Пример
Давайте разобрать без флага:
using System;
using System.Text.Json;
class Item
{
public string Name { get; set; }
}
class Program
{
static void Main()
{
try
{
JsonSerializer.Deserialize<Item>(
"{\"Name\":\"abcde\",}");
}
catch (JsonException)
{
Console.WriteLine("fail");
}
}
}
Результат выполнения кода:
"fail"
Пример
Давайте разобрать корректный JSON без запятой:
using System;
using System.Text.Json;
class Item
{
public string Name { get; set; }
}
class Program
{
static void Main()
{
var options = new JsonSerializerOptions
{
AllowTrailingCommas = true
};
Item item = JsonSerializer.Deserialize<Item>(
"{\"Name\":\"abcde\"}", options);
Console.WriteLine(item.Name);
}
}
Результат выполнения кода:
"abcde"
Смотрите также
-
ReadCommentHandling,
комментарии в JSON -
Deserialize,
разбор текста -
JsonSerializerOptions,
объект настроек -
PropertyNameCaseInsensitive,
регистр имён