freepascal:JSON 和递归数据结构

freepascal: JSON and recursive data structure

fpjson 可以处理以下结构的加载和保存 from/to json:

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

谢谢!

fcl-json可以存储嵌套数据(一个对象可以有一个对象数组,对象数组可以有一个对象数组,参见提供的例子)

但是这样你存储的是对象本身,而不是引用,这对树来说很好,但对循环结构来说就不行了。

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

如果您的根不是第一个元素,您需要另外将根的 index/iD 存储在某处