В общем, мне подсказали, что нужны умельцы на D3. В json как раз это дерево и хранится. Вот кстати кусок json, по которому дерево и рисуется как раз:
"trees": [
{
"treeId": 1,
"userId": 34,
"parentId": 1,
"loopLevel": 1,
"level": 1,
"path": "00"
},
{
"treeId": 1,
"userId": 37,
"parentId": 34,
"loopLevel": 1,
"level": 2,
"path": "00"
},
{
"treeId": 1,
"userId": 39,
"parentId": 34,
"loopLevel": 1,
"level": 2,
"path": "40"
},
{
"treeId": 1,
"userId": 40,
"parentId": 37,
"loopLevel": 1,
"level": 3,
"path": "00"
},
{
"treeId": 1,
"userId": 41,
"parentId": 39,
"loopLevel": 1,
"level": 3,
"path": "40"
},
{
"treeId": 1,
"userId": 43,
"parentId": 41,
"loopLevel": 1,
"level": 4,
"path": "40"
},
{
"treeId": 1,
"userId": 44,
"parentId": 43,
"loopLevel": 1,
"level": 5,
"path": "40"
},
{
"treeId": 1,
"userId": 45,
"parentId": 44,
"loopLevel": 1,
"level": 6,
"path": "40"
},
{
"treeId": 2,
"userId": 34,
"parentId": 1,
"loopLevel": 1,
"level": 1,
"path": "00"
},
{
"treeId": 2,
"userId": 37,
"parentId": 34,
"loopLevel": 1,
"level": 2,
"path": "00"
},
{
"treeId": 2,
"userId": 39,
"parentId": 34,
"loopLevel": 1,
"level": 2,
"path": "40"
},
{
"treeId": 2,
"userId": 40,
"parentId": 37,
"loopLevel": 1,
"level": 3,
"path": "00"
},
{
"treeId": 2,
"userId": 41,
"parentId": 39,
"loopLevel": 1,
"level": 3,
"path": "40"
},
{
"treeId": 2,
"userId": 43,
"parentId": 41,
"loopLevel": 1,
"level": 4,
"path": "40"
},
{
"treeId": 2,
"userId": 44,
"parentId": 43,
"loopLevel": 1,
"level": 5,
"path": "40"
},
{
"treeId": 2,
"userId": 45,
"parentId": 44,
"loopLevel": 1,
"level": 6,
"path": "40"
},
{
"treeId": 3,
"userId": 34,
"parentId": 1,
"loopLevel": 1,
"level": 1,
"path": "00"
}
],