Вход на сайт
Резюме для программиста
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);
(Здешний редактор кода - просто пи...ц!!)