Я использую отражение для создания некоторых объектов. Значения, которые я устанавливаю, считываются из файла, поэтому они ...
Когда я могу вызвать сторонний api и вернуть данные одного класса, все десериализуется нормально с помощью этого кода
TheUser me = jsonSerializer.Deserialize(response, typeof(TheUser)) as TheUser
Проблема возникает, когда я пытаюсь десериализовать содержимое ответа JSON, которое представляет собой массив, например
{
"data": [
{
"name": "A Jones",
"id": "500015763"
},
{
"name": "B Smith",
"id": "504986213"
},
{
"name": "C Brown",
"id": "509034361"
}
]
}
Я могу заставить сериализацию работать только в том случае, если я использую настраиваемый класс-оболочку вокруг элемента «данные», и этот член должен иметь тип List
. Если он имеет их как тип List
, я получаю ArgumentException
из метода JsonParser DesializeType
.
Первоначально я пытался сериализовать без типа упаковки, например this
List<TheUser> freinds = jsonSerializer.Deserialize(response, typeof(List<TheUser>)) as List<TheUser>;
, но это просто возвращает мне пустую коллекцию. Конечно, я должен иметь возможность десериализации массива в строго типизированный список.