将javascript对象传递给ajax

时间:2012-01-27 06:20:48

标签: jquery json dynatree

我正在尝试使用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
    });
});

但是,当我从treeData传递getTreeData.do的内容时,jquery 1.7.1(以及1.5.2和1.4.2)会引发解析错误。我相信这是因为JSON的规范要求键和值是字符串,并且是引用的。但是如果我引用键和值,那么dynatree将绘制一个标有“null”的单个节点的树。

有没有办法做到这一点,或者在检索树数据后,我是否必须多次使用dynatree的createNode()addNode()函数?

在相关的说明中,合法的javascript对象如何不合法JSON?

1 个答案:

答案 0 :(得分:0)

我已将响应类型更改为“text / plain”并在响应上运行javascript的eval()。哎呀,为什么我以前没想过呢?