, когда кто-то посылает неверный JSON в мой WebAPI:Json Deserialize, положить пустые элементы в массив
"items" : [
,
{
...
}
]
то десериализация не подведет и ставит «пустое» значение в качестве первого элемента массива, это возможно ли отказ json deserialiser и вернуть ошибку? или просто удалите нулевые элементы из массива.
Я уже пробовал добавлять конвертер, где я могу удалить пустые элементы, но я не могу найти источник, как работает сериализация существующего массива (de).
Я нашел MassTransit.Serialization.ListJsonConverter, который может десериализовать List/Array, поэтому я переопределяю его метод десериализации на основе вызова и проверяю результат, если он содержит нулевые значения, просто генерирует исключение, но для меня странно, что Newtonsoft.Json не содержит массив конвертер
как для WebAPI я не хочу, чтобы разобрать что-либо самостоятельно, так единственно возможное решение для расширения существующих методов десериализации
Возможно, была одна из причин, по которой ваш Json не в правильном формате. – Valkyrie
Valkyriee прав, лучший способ - устранить причину поврежденных данных, а не заниматься этим. – Robert
Я знаю, что это неверно, но десериализатор не терпит неудачу, и ошибка сервера не является хорошим ответом на недопустимый json, поэтому он должен отправить ответ об ошибке с правильным описанием, где ошибка в json или просто исключить нулевые элементы. –