Delphi Superobject,json的通用列表
我有一个对象,其中包含一些TObjectList字段,我尝试使用帮助表单将其编码为JSONDelphi Superobject,json的通用列表,json,delphi,generics,rtti,superobject,Json,Delphi,Generics,Rtti,Superobject,我有一个对象,其中包含一些TObjectList字段,我尝试使用帮助表单将其编码为JSON TLogs=TObjectList; TMyObject=类(ToObject) 私有的 鞭笞:鞭笞; 结束; 在SuperObject代码的深处,有一个ToClass过程,迭代字段并将其添加到json结果中 在此循环中,检查TRttiFields字段类型。如果为零,则跳过对象 for f in Context.GetType(Value.AsObject.ClassType).GetFields do
TLogs=TObjectList;
TMyObject=类(ToObject)
私有的
鞭笞:鞭笞;
结束;
在SuperObject代码的深处,有一个ToClass过程,迭代字段并将其添加到json结果中
在此循环中,检查TRttiFields字段类型。如果为零,则跳过对象
for f in Context.GetType(Value.AsObject.ClassType).GetFields do
if f.FieldType <> nil then
begin
v := f.GetValue(value.AsObject);
result.AsObject[GetFieldName(f)] := ToJson(v, index);
end
用于Context.GetType(Value.AsObject.ClassType)中的f的
如果f.FieldType为nil,则
开始
v:=f.GetValue(value.AsObject);
result.AsObject[GetFieldName(f)]:=ToJson(v,index);
结束
我的常规列表字段的字段类型为nil。为什么?
如何使SuperObject序列化我的对象列表?这是Delphi RTTI创建中的一个已知问题。如果这样声明泛型类,它将不起作用。您需要使用类关键字
TLogs = class(TObjectList<TLog>);
TLogs=class(TObjectList);
希望在下一个版本中能解决这个问题。@menjaraz:据我所知,还没有。
TLogs = class(TObjectList<TLog>);