我想要生成JSON来表示复杂的对象,手动的(没有任何RTTI等等)。
是否可以使用Mormot (以及如何)来完成这一任务?
我已经找到了JSON变体类型,但该类型似乎无法生成像下面这样的复杂JSON:在Delphi 7中用LKJSON生成JSON数组
当然,我可以像使用lkJSON那样使用它,但是由于我的项目已经使用了Mormot,所以我更愿意使用已经使用的库。
发布于 2021-01-08 17:13:05
mORMot中有多种方法生成任何类型的json文档。
您可以在下面找到其中一个序列化您提供的示例,IMHO更易读和更容易理解:
...
uses SynCommons;
...
var parcelas , venda , vendas , json : variant;
begin
parcelas := _Obj(['numero',1,
'valor',50
]);
venda := _Obj(['nsuOrigem','1',
'data','2014-03-14',
'nrParcelas',1,
'valor',50,
'parcelas' , _Arr([parcelas
])
]);
vendas := _Arr([venda]);
venda := _Obj(['nsuOrigem','2',
'data','2014-03-14',
'nrParcelas',1,
'valor',50,
'parcelas' , _Arr([parcelas //in this case this object is the same
])
]);
TDocVariantData(vendas).AddItem(venda);
json := _Obj(['nrVendas',2,
'totalVendas',100.0,
'vendas',vendas
]);
//
assert(json.nrVendas=2);
assert(json.vendas._count=2);
assert(json.vendas._(0).nsuOrigem='1');
assert(json.vendas._(1).nsuOrigem='2');
assert(json.vendas._(1).parcelas._(0).valor=50);
end;这应该从Delphi 7到10.4起作用。请在令人惊叹的文档中找到更多详细信息。
https://stackoverflow.com/questions/46649857
复制相似问题