Когда я могу вызвать стороннюю 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"
}
]
}
Я могу заставить сериализацию работать только в том случае, если я использую собственный класс упаковки вокруг члена "data", и этот член должен иметь тип List<object>
. Если он имеет тип List<TheUser>
, я получаю ArgumentException
из метода JsonParser DesializeType
.
Я изначально попытался сериализоваться без типа обертки, подобного этому
List<TheUser> freinds = jsonSerializer.Deserialize(response, typeof(List<TheUser>)) as List<TheUser>;
но это просто возвращает мне пустую коллекцию. Разумеется, я должен иметь десериализацию массива в строго типизированный список.