Необычное дерево не загружает данные JSON

Я пытаюсь использовать fancytree для отображения некоторых данных, возвращаемых из php rest service. Данные, возвращаемые службой, были проверены с помощью JSONLint и отображаются в формате, указанном в документах fancytree.

Если у меня открыто окно инструментов разработчика (Chrome), в файле jquery-1.11.3.min.js: 2 отображается ошибка «Неопознанная ошибка: не реализовано».

Когда я проверял возвращенные данные JSON, я использовал Advanced Rest Client (Google App) и удалил двойные кавычки, которые окружали строку, отображаемую Advanced Rest Client, а затем вставил значение в JSONLint.

Мой код JQuery:

<script type="text/javascript">
$(function(){
var phpAPI = "http://localhost/clubjudge/api/JSONClassTree2";
$.getJSON(phpAPI)
.done(function(json) {
alert(json);
$("#tree").fancytree({
source: json
}
);
})
.fail(function(jqxhr, textStatus, error) {
var err = textStatus + ", "+ error;
console.log("Request Failed: "+ err );
});

});
</script>

Любая помощь очень ценится, так как я возился с этим в течение нескольких дней.
PS. Я надеюсь, что включенный код отформатирован правильно. «Предварительный просмотр» не выглядит правильным.

Я подумал, что лучше опубликовать данные JSON.

[
{"title":"A - Australian Native","key":"1","children":[
{"title":"A1 - Australian Native Dendrobium Species","key":"7"},
{"title":"A2 - Australian Native Any Other Species","key":"8"},
{"title":"A3 - Australian Native Dendrobium Hybrid","key":"9"},
{"title":"A4 - Australian Native Any Other Hybrid","key":"10"},
{"title":"A5 - Australian Native Seedling","key":"11"}
]},
{"title":"B - Cymbidium","key":"2","children":[
{"title":"B1 - Standard Type Cymbidium","key":"3"},
{"title":"B2 - Intermediate Type Cymbidium","key":"4"},
{"title":"B3 - Miniature Type Cymbidium","key":"5"},
{"title":"B4 - Cymbidium Species","key":"6"}
]}
]

Извините, я понимаю, что есть много. Еще раз это то, что показывает Advanced Rest Client (после обрезания внешних двойных кавычек).

3

Решение

Вы можете загрузить данные JSON, вставив запрос в источник:

$("#tree").fancytree({
source: $.ajax({
url: "/clubjudge/api/JSONClassTree2",
dataType: "json"})
});
0

Другие решения

Возможно, ваша переменная json — это строка JSON, и FancyTree ожидает, что это будет объект JS, поэтому сначала вам следует использовать JSON.parse (). Это помогло в моем случае.

1

Не уверен, что это решит вашу проблему, но вам не нужно отправлять отдельный запрос ajax. Fancytree поддерживает это напрямую:

$("#tree").fancytree({
source: {
url: "/clubjudge/api/JSONClassTree2",
cache: false
},
...
});

Смотрите здесь для деталей: https://github.com/mar10/fancytree/wiki/TutorialLoadData

0
По вопросам рекламы [email protected]