JSONMarshalled在Delphi中不起作用

时间:2015-04-28 23:01:40

标签: json delphi delphi-xe7

我使用Delphi XE7进行以下简单类

{$M+}
{$RTTI EXPLICIT FIELDS([vcPrivate])}
TEntityForCreation = class
private
  [JSONMarshalled(False)]
  FCreator: Integer;
  FDescription: String;
public
  property Creator: Integer read FCreator write FCreator;
  property Description: String read FDescription write FDescription;
  function ToJsonString: string;
  class function FromJsonString(AJsonString: string): TEntityForCreation;
end;

方法ToJsonString使用内置的JSON序列化

function TEntityForCreation.ToJsonString: string;
begin
  result := TJson.ObjectToJsonString(self);
end;

由于某种原因,Creator元素始终在Json字符串中被序列化。我已经转过"发送运行时类型信息"在项目选项中为True。

单步执行JSON编组代码,我发现它只是没有意识到JSONMarshalled已链接到FCreator。我想我在某处遗漏了一些编译器指令,但无法弄明白。

0 个答案:

没有答案