Aspnet Core JSON игнорировать дубликаты полей
Как игнорировать дубликаты полей?
Например, у меня есть этот сырой JSON { "Value": 3, "Name": "Test", "value": "irrelevant" }
Я хотел бы игнорировать значение, потому что мой целевой тип имеет public int Value { get; set; }
У нас есть такая проблема на большинстве данных с клиентской стороны. В ядре asp.net как нам указать сериализатору json использовать свойство, соответствующее типу в цели?
Ура,
1 ответ
К сожалению, это невозможно.
Предполагая, что это JSON:
{
"Value": 3,
"Name": "Test",
"value": "irrelevant"
}
И этот класс:
public class MyClass
{
public string Value { get; set; }
public string Name { get; set; }
}
JSON.NET будет десериализоваться следующим образом:
Value = 3
Name = "Test"
Value = "irrelevant"
У десериализатора нет "состояния", поэтому ему все равно, Value
ранее был десериализован; он просто присваивает свойства по ходу дела.
Причина, по которой вы получаете ошибку, в том, что ваш класс определяет Value
как int
, Это приводит к выполнению десериализатора:
Value = 3
Name = "Test"
Value = "irrelevant"
<--- выбросить исключение, потому чтоint
не может быть установлен вstring
значение.