У меня нет контроля над моим источником данных. Они построили строку JSON, которая должна содержать массивы, но это не так. Кроме того, они назвали каждое свойство по-разному. Я пробовал все, что знаю, но я в затруднении, пытаясь десериализировать это.Deserializing Non-Array Data Into Array
{ "class-A" : { "property_0" : { "item1" : "data", "item2" : "data" }, "property_1" : { "item1" : "data", "item2" : "data" }, "property_2" : { "item1" : "data", "item2" : "data" } } }
Это должно быть массивом, так что я могу десериализацию его в IEnumerable < собственности > но отсутствие скобок массива и подчеркивание/номер добавляемого к имени свойства действительно бросал меня.
Я смог десериализовать строку в отдельные пронумерованные свойства, а затем добавить их в коллекцию, но это не сработает, так как количество свойств может быть длинным (порядка 200 или более) и я не знаю заранее, сколько свойств будет включено в строку JSON.
Есть ли способ справиться с этой десериализацией с помощью Newtonsoft-Json, чтобы он игнорировал символ подчеркивания/числа в имени свойства и вместо этого обрабатывал его как имя свойства массива (псевдоним)? У меня есть контроль над построением модели, которая представляет строку JSON, но я не уверен, как это помогает.
Вы должны запросить у поставщика JSON для ваших требований, чтобы сделать вашу жизнь проще – agentpx
она действует на JSONLint.com по путь – agentpx
Даже если вы не можете изменить свой источник данных, я думаю, что это поможет людям ответить на вопрос, знают ли они, как вы хотите, чтобы ваши данные выглядели. – morningstar