@ndbn

Десериализация абстрактного класса?

Приветствую.
Имеется такой набор классов Delphi XE2:
TBaseAbstractClass = class abstract
  name : string;
end;

TDerivedClassStr = class(TBaseAbstractClass)
  value : string;
end;

TDerivedClassFloat = class(TBaseAbstractClass)
  value : float;
end;

TMyObject = class
    objs : array of TBaseAbstractClass;
end;


Есть JSON:
{
 [
    {"name" : "name1", "value" : "value1"},
    {"name" : "name1", "value" : "value2"}
 ]
}


Его можно десериализировать как TMyObject, но тогда теряются value, а привидение типов вызывает ошибку (что мне совсем не очевидно).
Десериализация производится библиотекой superobject.
Есть ли способ сохранить значение value, но так, чтобы не создавать:
TMyObject = class
    objs : array of TDerivedClassStr;
end;
  • Вопрос задан
  • 285 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы