0

我在 Delphi XE4,TSuperObject:

TAspTransactionBasicData = Class(TObject)
  Currency          : Byte;                     
  Amount            : Currency;
  constructor         Create(aCurrency: Byte; aAmount: Currency);
end;

TStartWorkflowWithBasicData  = Class(TObject)
  AdditionalData    : TAspTransactionBasicData;  // here it is as an Object
  TypeOfWorkflow    : Byte;
  constructor         Create(aAdditionalData: TAspTransactionBasicData; aTypeOfWorkflow: Byte);
  function            toJSon(TObject:TStartWorkflowWithBasicData):String;
end;

ToJSon函数将对象放入 JSON:

function TStartWorkflowWithBasicData.toJSon(TObject:TStartWorkflowWithBasicData):String;
Var
  JSon:     ISuperObject;
  RttiCont: TSuperRttiContext;
begin
  Result   := '';
  RttiCont := TSuperRttiContext.Create;
  JSon     := RttiCont.AsJson<TStartWorkflowWithBasicData>(TObject); // Insert the object into JSON
  Result   := JSon.AsJSon(False);
  RttiCont.Free;
end;

我还需要一个完全相反的函数 fromJSon,它将读取 JSON(插入对象的位置)回对象,但我正在摸索......

你能告诉我吗?

4

1 回答 1

0

我不能帮助你处理 SuperObject,但是 kbmMW 包含一个非常完整的 XML、JSON、YAML、BSON、MessagePack + CSV,并且在下一个版本中还有 TXT(固定格式)序列化器/解串器和对象编组器/解组器。

它将很容易地转换两种方式,甚至在格式之间。

kbmMW Community Edition 包含所有内容(新的 TXT 格式除外),并且是免费的,即使用于商业用途(受许可证限制)。

https://components4developers.blog/2019/03/11/rest-easy-with-kbmmw-24-xml_json_yaml_to_object_conversion/

于 2021-08-29T12:31:58.733 回答