2013-10-10 2 views
0

Как уже упоминалось выше, я пытаюсь построить график с использованием d3, где мне нужно, чтобы данные находились в родительских дочерних отношениях, но я не мог понять, как это сделать преобразовать результат запроса MySQL в родительский дочерний формат JSON.Преобразование результата запроса MySQL в иерархические данные - D3

Предоставленная помощь будет очень благодарна.

Я пытаюсь повторить диаграмму в приведенной ниже ссылке:

Zoomable Partition Layout (нажмите на перегородках для увеличения вверх или вниз по дереву)

данных в MySQL:

 
Column1   Column2   Column3 
First Top   -     1500 
First Child  First Top   500 
Second Child  First Top   500 
Third Child  First Top   500 
First Sub-Child First Child   250 
First Sub-Child First Child   250 
Second Sub-Child Second Child   250 
Second Sub-Child Second Child   250 
Third Sub-Child Third Child   250 
Third Sub-Child Third Child   250 

Формат данных желаемой информации:

 
{ 
    "name": "First Top", 
    "children": [ 
    { 
     "name": "First Child", 
     "children": [ 
     {"name": "First Sub-Child", "size": 250}, 
     {"name": "First Sub-Child", "size": 250} 
     ] 
    }, 
    { 
     "name": "Second Child", 
     "children": [ 
     {"name": "Second Sub-Child", "size": 250}, 
     {"name": "Second Sub-Child", "size": 250} 
     ] 
    }, 
    { 
     "name": "Third Child", 
     "children": [ 
     {"name": "Third Sub-Child", "size": 250}, 
     {"name": "Third Sub-Child", "size": 250} 
     ] 
    } 
    ] 
} 
+0

Вы дали нам ни пример того, что данные, которые Вы получаете вид, как ни то, что вы хотите, чтобы преобразовать его в. Без этой информации все, что я могу сделать, это указать вам документацию для ['d3.nest()'] (https://github.com/mbostock/d3/wiki/Arrays#wiki-d3_nest), которая позволяет вам данные гнезда. –

+0

Размеры, похоже, отсутствуют в вашей базе данных. Откуда вы их получите? –

+0

Это всего лишь образец данных. Я знаю, что эти данные не будут выглядеть хорошо. Помогите мне, как получить данные образца в формате, который я вставил. –

ответ

0

Вот некоторые псевдо-код, предполагая, что один уровень иерархии:

  • получить родительские/дочерние строки из базы данных (select t1.parent, t1.item, size from tree t1, tree t2 where t1.parent=t2.item)
  • цикл по строкам:
    • если родитель отличается чем предыдущий родитель и предыдущий родитель:
      • нажимной объект на массив
      • начать новый объект
    • добавить ребенок и размер объект
  • Вдавите последний объект на массив
  • получить корневой объект (где родитель нуль)
  • закодировать объект в JSON с корневым объектом; см Create JSON-object the correct way
  • выход JSON
+0

У меня нет сомнений в том, что вы запрашиваете данные из MySQL. У меня возникла проблема только в преобразовании результата запроса в желаемый формат JSON. –

Смежные вопросы