Я создал класс под названием RESTObjectBase
. Этот класс унаследован любым количеством других классов, которые включают информацию, такую как люди, адрес, номера телефонов.Deserializing complex JSON содержит массив унаследованных типов объектов
Я создаю объект List<RestObjectBase>
, содержащий один или несколько объектов этого типа и передающий его обратно на передний конец через вызов REST.
JSON, который является возвращение следующим образом:
{
"Items":[
{
"__type":"AnyObjectInheritedFromBaseClass",
"ObjectType":3,
"First_Name":"",
"Last_Name":"",
}
],
"Status":0
}
Я пытаюсь десериализации это на другом конце. У меня было несколько ошибок, в том числе «тип не может быть пустым», но это не моя проблема.
Есть ли способ десериализации объекта этой сложности в исходный класс/список. Почему я боюсь, это массив объектов, которые в конечном счете наследуют RESTObjectBase
, и это не похоже на то, что десериализация достаточно умна для этого.
десериализация этого интерфейса может быть любым устройством или платформой, поэтому я не могу просто использовать что-то вроде JSON.NET, поскольку оно не поддерживается везде.
Я был бы рад разоблачить JSON и сериализовать каждый элемент в массиве отдельно, но я не могу понять, как это сделать. Я мог бы использовать этот тип, чтобы определить, как его десериализировать.
Любая помощь будет оценена по достоинству.
Какой сериализатор вы используете? Наличие параметра «__type» предполагает, что это либо «DataContractJsonSerializer», либо «JavaScriptSerializer». – dbc
Проверьте функцию «Вставить JSON как классы» в VS. http://blogs.msdn.com/b/webdev/archive/2012/12/18/paste-json-as-classes-in-asp-net-and-web-tools-2012-2-rc.aspx – Jeremy
Благодарю. Оба они вернули меня на правильный путь. Это и 2 часа сна :). –