繁体   English   中英

fcl-json jsonConf:保存json格式吗?

[英]fcl-json jsonConf: save json formatted?

我通过jsonConf(TJsonConfig)保存文件,并且json文件长1行。 (其中有许多键)。 如何保存它的格式? 很喜欢在网上。

拉撒路1.4.2。

你必须调用FormatJSON用正确的参数的受保护的成员FJSON的。 要访问FJSON,您有多种选择(类帮助器,转换为虚拟子类或创建真实的子类)。

因为TJsonConfig析构函数调用flush() ,所以很有可能在文件末尾使用默认格式覆盖该文件。 因此,最好的选择是子类TJsonConfig并覆盖析构函数而不调用继承:

destructor TMyJSONConfig.Destroy;
var
  data: string;
  str: TMemoryStream;
begin
  if Assigned(FJSON) then
  begin
    data := FJSON.FormatJSON(); // here you can change default parameters
    with TMemoryStream.Create do try
      Write(data[1], Length(data));
      SaveToFile(FFilename);
    finally
      free;
    end;
    FreeAndNil(FJSON); 
  end;
  // skip flush() in inherited, avoid to save again the file.
  TComponent(Self).Destroy;
end;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM