2017-01-09 148 views
0

能fpjson处理负载和以下结构的自/至JSON节省:FreePascal的:JSON和递归数据结构

PTreeStructure = ^TTreeStructure; 
TTreeStructure = class 
    name: string; 
    value: Integer; 
    items: array of PTreeStructure; 
end; 

谢谢!

+0

这看起来不像您的真实类型。当然,它是'记录'而不是'class'。 –

+0

这有什么关系?我只是简化了结构以显示项目的关键点:PTreeStructure数组; – xrfang

+0

类是需要由构造函数实例化的引用类型。记录是可以自动分配的值类型。我会认为它很重要。无论如何,如果你必须使用一个类,就这样吧。但是在那种情况下,我很惊讶使用'PTreeStructure =^TTreeStructure',因为这是一个指向指针的指针。这是如何分配的? –

回答

0

FCL-JSON可以存储嵌套的数据(一个对象可以具有对象的数组,其可具有对象的数组,请参阅所提供的实施例)

但是这样你存储对象本身,而不是参考,这对一棵树来说很好,但不适合骑自行车的建筑。

A DAG可以通过存储具有所有数据的平面数组来表示,但是将具有索引或每种记录的某种形式的唯一ID的项存储到数组中而不是指针。

如果您的根目录不是第一个元素,则需要额外存储根目录的索引/ iD

+0

谢谢,看来我最好只使用fpjson并自己加载/保存。 – xrfang