は、ハンドル負荷をfpjsonとJSONへ/から次の構造を保存することができます::JSONと再帰的なデータ構造
PTreeStructure = ^TTreeStructure;
TTreeStructure = class
name: string;
value: Integer;
items: array of PTreeStructure;
end;
ありがとう!ネストされたデータを保存することができます
は、ハンドル負荷をfpjsonとJSONへ/から次の構造を保存することができます::JSONと再帰的なデータ構造
PTreeStructure = ^TTreeStructure;
TTreeStructure = class
name: string;
value: Integer;
items: array of PTreeStructure;
end;
ありがとう!ネストされたデータを保存することができます
FCL-JSONは
を(オブジェクトは、付属の例を参照して、オブジェクトの配列を持つことができるオブジェクトの配列を持つことができます)しかし、そのように、あなたはオブジェクト自体ではなく、参照を格納しますこれはツリーの場合は問題ありませんが、サイクリング構造の場合はそうではありません。
DAGは、すべてのデータを含むフラットな配列を格納することで表すことができますが、ポインタではなく配列ごとにレコードごとに一意のIDまたはインデックスを持つアイテムを格納します。
ルートが最初の要素ではない場合、あなたはこれがあなたの本当のタイプのように見えていませんさらにどこか
ありがとう、私はちょうどfpjsonを使用し、負荷を行う/自分自身を保存するよりよいと思われる。 – xrfang
ルートのインデックス/ IDを保存する必要があります。確かに 'class'ではなく' record'です。 –
それは問題ですか?私は、項目である要点を示すために構造を単純化しました:配列のPTreeStructure; – xrfang
クラスは、コンストラクタによってインスタンス化する必要がある参照型です。レコードは、自動的に割り当てられる値型です。私はそれが重要だと思ったでしょう。とにかく、クラスを使う必要がある場合は、そうするようにしてください。しかし、その場合、私は 'PTreeStructure =^TTreeStructure'を使用するとポインタにポインタを渡すので驚いています。それはどのように割り当てられるのですか? –