Мне нужно сгенерировать диаграмму, которая может отображать данные из JSON, которые пришли с сервера. Я использую GoJS для создания диаграммы. Поэтому я использовал пример с сайта, чтобы построить свой собственный проект. Все выглядит идеально, как я и хотел.
myDiagram.model = new go.TreeModel([
{ key: "Root", wallet: "data", color: lavgrad },
{ key: "Left1", wallet: "data", parent: "Root", dir: "left", color: bluegrad },
{ key: "Left3", wallet: "data", parent: "Root", dir: "left", color: bluegrad },
{ key: "leaf1", wallet: "data", parent: "Left1" },
{ key: "leaf2", wallet: "data", parent: "Left1" },
{ key: "Left2", wallet: "data", parent: "Left1", color: bluegrad },
{ key: "leaf3", wallet: "data", parent: "Left2" },
{ key: "leaf4", wallet: "data", parent: "Left2" },
{ key: "Right1", wallet: "data", parent: "Root", dir: "right", color: yellowgrad },
{ key: "Right2", wallet: "data", parent: "Right1", color: yellowgrad },
{ key: "leaf5", wallet: "data", parent: "Right2" },
{ key: "leaf6", wallet: "data", parent: "Right2" },
{ key: "leaf7", wallet: "data", parent: "Right2" },
{ key: "leaf8", wallet: "data", parent: "Right1" },
{ key: "leaf9", wallet: "data", parent: "Right1" }
]);
doubleTreeLayout(myDiagram);
первое изображение
После этого я попытался удалить жестко закодированную структуру диаграммы и вместо этого разобрать ее с JSON. Вот мой код.
JSON файл
{
"data":[
{
"key": "Root",
"wallet": "data"
},
{
"key": "Left1",
"wallet": "data",
"parent": "Root",
"dir": "left"
},
{
"key": "Left3",
"wallet": "data",
"parent": "Root",
"dir": "left"
},
{
"key": "leaf1",
"wallet": "data",
"parent": "Left1"
},
{
"key": "leaf2",
"wallet": "data",
"parent": "Left1"
},
{
"key": "Left2",
"wallet": "data",
"parent": "Left1"
},
{
"key": "leaf3",
"wallet": "data",
"parent": "Left2"
},
{
"key": "leaf4",
"wallet": "data",
"parent": "Left2"
},
{
"key": "Right1",
"wallet": "data",
"parent": "Root",
"dir": "right"
},
{
"key": "Right2",
"wallet": "data",
"parent": "Right1"
},
{
"key": "leaf5",
"wallet": "data",
"parent": "Right2"
},
{
"key": "leaf6",
"wallet": "data",
"parent": "Right2"
},
{
"key": "leaf7",
"wallet": "data",
"parent": "Right2"
},
{
"key": "leaf8",
"wallet": "data",
"parent": "Right1"
},
{
"key": "leaf9",
"wallet": "data",
"parent": "Right1"
}
]
}
JS файл
jQuery.getJSON("minimal.json", load);
function load(jsondata) {
myDiagram.model = new go.TreeModel(jsondata["data"]);
}
вторая картинка
Но, как вы можете видеть, результат не похож на первый рисунок выше (он просто расположен в случайном порядке). Этот результат проходит без каких-либо сообщений об ошибках или предупреждений в консоли. Поэтому я не могу понять, что я делаю неправильно и почему данные отображаются в случайном порядке.