0

フォームにアイテムのリストがあります

ID - 親 ID - 名前

そのリストは、次のような JSON にあります

[
    {
        "id": 1,
        "parent_id": 0,
        "name": "item 1"
    },
    {
        "id": 2,
        "parent_id": 0,
        "name": "item 2"
    },
    {
        "id": 3,
        "parent_id": 1,
        "name": "item 3"
    }
]

javascriptを使用して、このようなネストされたリストに変換するにはどうすればよいですか? (ネスティングレベルに制限なし)

[
    {
        "id": 1,
        "parent_id": 0,
        "name": "item 1",
        "children": [
            {
                "id": 3,
                "parent_id": 1,
                "name": "item 3"
            }
        ]
    },
    {
        "id": 2,
        "parent_id": 0,
        "name": "item 2"
    }
]
4

1 に答える 1

0

Python ではほぼ 1 つのライナーです (親ごとに 1 つの子のみを想定)。

import json
from pprint import pprint

Data = '[{"id": 1,"parent_id": 0,"name": "item 1"},
         {"id": 2,"parent_id": 0,"name": "item 2"},
         {"id": 3,"parent_id": 1,"name": "item 3"}]'
List = json.loads(Data)
[[IItem.update({'children' : List.pop(List.index(Item))})  for IItem in List if Item['parent_id'] == IItem['id']] for Item in List]
Data = json.dumps(List)
pprint(Data)

複数の子が必要な場合、これにより状況が少し変わります。

于 2012-05-18T10:43:39.907 に答える