comment encoder ces données à la structure parent / children dans JSON

Je suis en train de travailler avec d3.js pour visualiser les familles d'animaux (organismes) (jusqu'à 4000 à la fois) comme un arbre graphique, même si la source de données pourrait tout aussi bien être un listing de répertoire ou à la liste des espaces de objets. mon apparence des données:

json = {
    organisms:[
        {name: 'Hemiptera.Miridae.Kanakamiris'},
        {name: 'Hemiptera.Miridae.Neophloeobia.incisa'},
        {name: 'Lepidoptera.Nymphalidae.Ephinephile.rawnsleyi'},
        ... etc ...
    ]
}

ma question est la suivante: je suis en train d'essayer de trouver le meilleur moyen de convertir les données ci-dessus à la hiérarchie parent /enfants la structure de données utilisée par un certain nombre de d3 visualisations comme treemap (pour les données d'exemple, voir le les reflets.json dans le d3/exemples/données/répertoire).
Voici un exemple, de la structure de données:

{"name": "ROOT",
 "children": [
        {"name": "Hemiptera",
         "children": [
             {"name": "Miridae",
              "children": [
                  {"name": "Kanakamiris", "children":[]},
                  {"name": "Neophloeobia",
                   "children": [
                       {"name": "incisa", "children":[] }
                   ]}
              ]}
         ]},
        {"name": "Lepidoptera",
         "children": [
             {"name": "Nymphalidae",
              "children": [
                  {"name": "Ephinephile",
                   "children": [
                       {"name": "rawnsleyi", "children":[] }
                   ]}
              ]}
         ]}
    ]}
}

EDIT: ci-joint l'original de tous les données de votre choix de la structure à l'intérieur d'un ROOT nœud, de sorte à se conformer à la structure de la d3 exemples, qui n'ont qu'un seul maître nœud parent.

Je cherche à comprendre générale modèle de conception, et comme un bonus, je serais ravi de voir quelques solutions en javascript, php, (ou même de python). javascript est ma préférence.
En ce qui concerne php: les données, j'utilise provient d'un appel à une base de données à un script php qui encode les résultats sous forme de json.
résultats de base de données dans le script php est un ensemble ordonné (voir ci-dessous), si c'est tout l'utilisation de php en fonction des réponses.

Array
(
    [0] => Array
        (
            ['Rank_Order'] => 'Hemiptera'
            ['Rank_Family'] => 'Miridae'
            ['Rank_Genus'] => 'Kanakamiris'
            ['Rank_Species'] => ''
        ) ........

où:
'Rank_Order' isParentOf 'Rank_Family' isParentOf 'Rank_Genus' isParentOf 'Rank_Species'

J'ai posé une question similaire axé sur une solution php icimais la seule réponse ne fonctionne pas sur mon serveur, et je n'ai pas tout à fait comprendre ce qui se passe, donc je veux vous poser cette question à partir d'un modèle de conception de point de vue, et d'inclure une référence à mon utilisation réelle qui est en javascript et d3.js.

source d'informationauteur johowie