我正在从 Web 服务中提取两个相关对象 - 文件夹和电子邮件。文件夹具有 ID 和 parentfolder.ID 属性,该属性指示文件夹嵌套在哪个父文件夹下。电子邮件有一个 CategoryID,它指示它是哪个文件夹的子文件夹。
我已经成功创建了一个将电子邮件嵌套在平面文件夹结构中的函数:
{
"folders": [
{
"name": "my emails",
"type": "folder",
"additionalParameters": {
"id": "174661",
"type": "email",
"parentID": "0"
},
"children": [
{
"name": "Test1",
"type": "item",
"additionalParameters": {
"id": "27502",
"subject": "Test"
}
},
{
"name": "Hello",
"type": "item",
"additionalParameters": {
"id": "27917",
"subject": "Hi!"
}
}
]
},
{
"name": "Test",
"type": "folder",
"additionalParameters": {
"id": "175620",
"type": "email",
"parentID": "174661"
},
"children": [
{
"name": "Test2",
"type": "item",
"additionalParameters": {
"id": "27891",
"subject": "Test"
}
}
]
},
{
"name": "SubFolder1",
"type": "folder",
"additionalParameters": {
"id": "175621",
"type": "email",
"parentID": "175620"
},
"children": [
{
"name": "Test2",
"type": "item",
"additionalParameters": {
"id": "27892",
"subject": "Test"
}
},
{
"name": "Test3",
"type": "item",
"additionalParameters": {
"id": "27893",
"subject": "Test"
}
}
]
},
{
"name": "SubFolder2",
"type": "folder",
"additionalParameters": {
"id": "175622",
"type": "email",
"parentID": "175620"
},
"children": [
{
"name": "Test4",
"type": "item",
"additionalParameters": {
"id": "27894",
"subject": "Test"
}
}
]
}
]
}
现在我需要使用递归遍历所有文件夹并将它们推送到其父级的子级数组中。基本上将树诉诸 n 层。我可以忽略任何type=items因为它们已经正确嵌套。只需要对类型为文件夹的人进行排序。
有没有人实现了一个 JSON 递归函数来重建一个带有嵌套的 JSON 对象?
谢谢您的帮助。