フォルダーとメールという 2 つの関連オブジェクトを 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は既に適切にネストされているため、無視できます。タイプがfolderのものをソートするだけです。
ネストされた JSON オブジェクトを再構築するために JSON 再帰関数を実装した人はいますか?
助けてくれてありがとう。