Как игнорировать пустые строки в ответе API JSON?C#

Место общения программистов C#
Ответить
Гость
 Как игнорировать пустые строки в ответе API JSON?

Сообщение Гость »


У меня есть API, разработанный в .NET6. В настоящее время все свойства, возвращаемые как нулевые, скрываются с помощью следующего:

_ = Services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; }); Я требую игнорировать также значения, которые представляют собой пустую строку. Там я реализовал приведенный ниже конвертер:

публичный класс EmptyStringConverter: JsonConverter { общедоступная строка переопределения Read (ссылка на средство чтения Utf8JsonReader, тип typeToConvert, параметры JsonSerializerOptions) { вернуть считыватель.GetString()!; } общедоступное переопределение void Write (писатель Utf8JsonWriter, строковое значение, параметры JsonSerializerOptions) { если (!string.IsNullOrEmpty(значение)) { писатель.WriteStringValue(значение); } еще { писатель.WriteNullValue(); } } } Добавлен конвертер в AddJsonOptions

_ = Services.AddControllers().AddJsonOptions(options => { options.JsonSerializerOptions.Converters.Add(новый EmptyStringConverter()); options.JsonSerializerOptions.DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull; }); Конвертер работает - меняет свойства пустой строки на null, но в ответе API эти свойства видны, хотя я установил DefaultIgnoreCondition = JsonIgnoreCondition.WhenWritingNull.

Я просмотрел другие статьи, в которых говорилось о необходимости добавления атрибута по умолчанию, но это означает необходимость изменить все свойства всех моделей, что невозможно. Кроме того, это также означает, что числа со значением 0 будут скрыты, чего мне не хотелось бы.

Мне нужно использовать System.Text.Json, а не Newtonsoft.

Есть ли способ добиться этого?
Ответить

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

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

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

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

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