Вход на сайт
Резюме для программиста
89957 просмотров
Перейти к просмотру всей ветки
в ответ alex445 07.12.21 20:09, Последний раз изменено 07.12.21 20:25 (alex445)
Вот так всё работает.
Бывшие проблемы:
1. Я не понял, что в джейсонке что, поэтому неправильно назвал свойство-коллекцию.
2. Для МСовского десиреалайзера нужно добавить опцию игнора написания большие-маленькие буквы. С ньютонсовтовским и так всё работает.
3. С защищёнными сеттерами не работает. Оно и понятно - как сериалайзер присвоит свойство, если его сеттер снаружи недоступен? Но на интервью я до этого не додумался.
было
public class Item
{
public string Prop1 { get; protected set; }
public string Prop2 { get; protected set; }
public string Desсription { get; protected set; }
}
public class Items
{
public List<Item> Items { get; set; }
}стало
public class Item
{
public string Prop1 { get; set; }
public string Prop2 { get; set; }
public string Description { get; set; }
}
public class ItemsCollection
{
public List<Item> Items { get; set; }
}
JsonSerializerOptions options = new JsonSerializerOptions()
{
PropertyNameCaseInsensitive = true
};
var itemCollection = JsonSerializer.Deserialize<ItemsCollection>(json, options);
(Здешний редактор кода - просто пи...ц!!)