JsTree возвращает ошибку «неверный JSON» - PullRequest
0 голосов
/ 07 сентября 2010

Я пытаюсь создать Jstree, код для него следующий:

$(function () {
$("#groups")
    .jstree({ 
        "plugins" : [ "themes", "json_data", "ui", "crrm", "cookies", "dnd", "search", "types", "contextmenu" ],

        "json_data" : {
            "ajax" : {
                "url" : base_url+"/json",
                "data" : function (n) {
                    return { id : n.attr ? n.attr("id") : 0 };
                },
                error: function(e,b,d){alert(d);}

            }
        },

        "types" : {
            "max_depth" : -2,
            "max_children" : -2,
            "valid_children" : [ "drive" ],
            "types" : {
                "default" : {
                    "valid_children" : "none",
                    "icon" : {
                        "image" : "./file.png"
                    }
                },
                "folder" : {
                    "valid_children" : [ "default", "folder" ],
                    "icon" : {
                        "image" : "./folder.png"
                    }
                }

            }
        },

        "ui" : {
            "initially_select" : [ "node_4" ]
        },
        "core" : { 
            "initially_open" : [ "node_2" , "node_3" ] 
        }
    });

});




Это тот Json, который я получил от Ajax-звонка

[
{
    "data" : "Genral ",
    "attr" : {
        "id" : "8"
    },
    "state" : "open",
    "children" : [
        {
            "data" : "onec ",
            "attr" : {
                "id" : "16"
            },
            "state" : "close"
        },
        {
            "data" : "onec2",
            "attr" : {
                "id" : "21"
            },
            "state" : "close"
        }
    ]
},
{
    "data" : "Stuff ",
    "attr" : {
        "id" : "9"
    },
    "state" : "open",
    "children" : [
        {
            "data" : "one9 ",
            "attr" : {
                "id" : "23"
            },
            "state" : "close"
        },
        {
            "data" : "bababa ",
            "attr" : {
                "id" : "24"
            },
            "state" : "close"
        }
    ]
}
] 



Я получаю сообщение об ошибке «Неверный JSON: ....», как мне решить эту проблему?


спасибо.

Ответы [ 2 ]

3 голосов
/ 07 сентября 2010

Возвращенный JSON действителен.Если бы я сделал предположение - может быть, вам нужно указать тип.EG:

 $("#groups").jstree({
        "json_data": {
            "ajax": {
                "type": "POST",
                "url": base_url+"/json",
                "data": function (n) { return { id: n.attr ? n.attr("id") : 0} }
            }
        },
0 голосов
/ 07 сентября 2010

Я думаю, json_data скорее должен быть jQuery.ajax вызов:

"json_data" : $.ajax({
    "dataType": "json",
    "url" : base_url+"/json",
    "data" : function (n) {
        return { id : n.attr ? n.attr("id") : 0 };
    },
    error: function(e,b,d){alert(d);}
})
...