Когда я могу вызвать сторонний 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>;
но это просто возвращает мне пустую коллекцию. Конечно, я должен иметь возможность десериализации массива в строго типизированный список.