Игнорировать логическое свойство = true в сериализации JSONC#

Место общения программистов C#
Ответить
Anonymous
 Игнорировать логическое свойство = true в сериализации JSON

Сообщение Anonymous »

У меня есть запись со свойством bool, значение которого по умолчанию = true:

Код: Выделить всё

private record MyRecord()
{
public bool BoolProperty { get; init; } = true;
}
Я хочу игнорировать «BoolProperty»:true в сериализованной строке JSON. Другими словами, если BoolProperty имеет значение true, я хочу, чтобы это свойство было исключено из результирующего представления JSON. Возможно ли это?
Вот демонстрация желательного поведения:

Код: Выделить всё

JsonSerializerOptions options = new();
options.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingDefault;

MyRecord obj = new();
Console.WriteLine($"Object: {obj}"); // OK
string json = JsonSerializer.Serialize(obj, options);
Console.WriteLine($"JSON: {json}"); // Not OK
Вывод:

Код: Выделить всё

Object: MyRecord { BoolProperty = True }
JSON: {"BoolProperty":true}
Желаемый результат должен быть следующим:

Код: Выделить всё

Object: MyRecord { BoolProperty = True }
JSON: {}
Онлайн-демо.
Я искал повторяющийся вопрос и не нашел ни одного.

Подробнее здесь: https://stackoverflow.com/questions/798 ... ialization
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»