Я пытаюсь использовать dynatree, и его можно инициализировать так:
var treeData =
[
{title: "group1", key:"182" },
{title: "group2", key:"181" },
{title: "group3", key:"189" , isFolder:true, children:
[
{title: "group3_1", key:"301" }
]
}
];
$(".groupContainer").dynatree({
checkbox: false,
selectMode: 2,
children: treeData
});
Обратите внимание, что объекты в treeData
имеют значения, на которые ссылаются имена, которые не заключены в кавычки.
Теперь я хочу сделать это:
var treeData = [];
$.getJSON('/getTreeData.do', function(data){
treeData = data;
$(".groupContainer").dynatree({
checkbox: false,
selectMode: 2,
children: treeData
});
});
Однако jquery 1.7.1 (и 1.5.2 и 1.4.2) вызывает ошибки синтаксического анализа, когда я передаю содержимое treeData
с getTreeData.do
.Я считаю, что это потому, что спецификация для JSON требует, чтобы ключи и значения были строками и заключались в кавычки.Но если я процитирую ключи и значения, то dynatree нарисует дерево с единственным узлом, помеченным как «ноль».
Есть ли способ сделать это, или мне придется использовать функции createNode()
и addNode()
dynatree несколько раз после получения данных дерева?
В связанной заметке,как законный объект JavaScript не является законным JSON?