我通过jsonConf(TJsonConfig)保存文件,json文件长1行。 (许多钥匙都在里面)。如何保存格式化?很喜欢网络。
Lazarus 1.4.2。
答案 0 :(得分:1)
您必须使用正确的参数调用受保护成员FJSON的FormatJSON
。要访问FJSON,您有多种选择(类助手,强制转换为虚拟子类或创建真正的子类)。
因为TJsonConfig析构函数调用flush()
,所以很可能最后用默认格式覆盖该文件。所以最好的选择是子类TJsonConfig并覆盖析构函数而不调用inherited:
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;