如何生成这样树形的字符串?

jbas jbas 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
大家好,
我写了很久都没写出这个生成树的算法,请帮一下。


function createJsonString(rs:TList):String;
begin
//这个函数怎么写,才能生成下面的字符串。

[
{
'id':'1',
'txt':'title1',
'items':[
{
'id':'2',
'txt':'title6'
},{
'id':'3',
'txt':'title4',
'items':[
{
'id':'4',
'txt':'title5'
},{
'id':'5',
'txt':'title7'
}
]
}
]
}
,{
'id':'6',
'txt':'title2'
}
,{
'id':'7',
'txt':'title3'
}
]
end;

procedure TForm1.Button2Click(Sender: TObject);
var
f_Record: PFavoritRecord;
rsList:TList;
s:String;
begin
rsList:=TList.Create;
new(f_Record);
f_Record.favTitle:='title1';
f_Record.favIsCat:='1'; //1: 表示是目录
f_Record.favCat:=''; //‘’表示是根目录
rsList.add(f_Record);

new(f_Record);
f_Record.favTitle:='title2';
f_Record.favIsCat:=''; //'' 表示是节点
f_Record.favCat:=''; //'' 表示是根结点
rsList.Add(f_Record);

new(f_Record);
f_Record.favTitle:='title3';
f_Record.favIsCat:=''; //'' 节点
f_Record.favCat:=''; //'' 根结点
rsList.Add(f_Record);

new(f_Record);
f_Record.favTitle:='title4';
f_Record.favIsCat:='1'; //'1' 表示目录
f_Record.favCat:='title1'; //'title4' 是 'title1's 的子节点,且这个节点也是一个目录
rsList.Add(f_Record);

new(f_Record);
f_Record.favTitle:='title5';
f_Record.favIsCat:=''; //'' 表示节点
f_Record.favCat:='title4'; //'title5' 是 'title4's 的子节点。
rsList.Add(f_Record);

new(f_Record);
f_Record.favTitle:='title6';
f_Record.favIsCat:=''; // '' 表示节点
f_Record.favCat:='title1'; //'title6' 是 'title1's 的子节点
rsList.Add(f_Record);

new(f_Record);
f_Record.favTitle:='title7';
f_Record.favIsCat:=''; //'' 表示节点
f_Record.favCat:='title4'; //'title7' 是 'title4's 的子节点
rsList.Add(f_Record);

s:= createJsonString(rsList);
end;


...全文

相关推荐

评论 4
收藏 已收藏
分享
返回顶部