Javascript 从XML数据为jsTree创建JSON对象

Javascript 从XML数据为jsTree创建JSON对象,javascript,jquery,json,xml,jstree,Javascript,Jquery,Json,Xml,Jstree,我无法填充jsTree,因为我正在创建的数组有问题 jsTree允许您传入JSON数据,因此我尝试格式化jsTree喜欢的对象数组: var myAry = []; $(xml).find('group').each(function() { myAry.push({ "id": $(this).find('GroupID').text(), "parent": "#", "text": $(this).find('

我无法填充jsTree,因为我正在创建的数组有问题

jsTree允许您传入JSON数据,因此我尝试格式化jsTree喜欢的对象数组:

    var myAry = [];

    $(xml).find('group').each(function() {

      myAry.push({
        "id": $(this).find('GroupID').text(),
        "parent": "#",
        "text": $(this).find('GroupName').text(),

      });
    });
当我将[myAry]转储到控制台时,它看起来像一个格式正确的数组,但jsTree不喜欢它。但是,如果我手动创建数组,jsTree会喜欢它:

  var testAry = [
                    {"id": "42", "parent": "#", "text": "Foo"},
                    {"id": "69", "parent": "#", "text": "Bar"},
                    {"id": "1", "parent": "#", "text": "Dolphin"},

    ];
我的循环出了什么问题

这可能会有所帮助(来自jQuery文档):

$.each()函数与$(selector).each()函数不同,后者用于以独占方式迭代jQuery对象

您正在使用的方法接受一个选择器参数,但您正在向它传递一个JSON对象的名称


试着使用。

你的dumped my ari与你的testAry示例相比如何?@Taplar我包括了Chrome的控制台输出。内容是相同的,但它缺少顶部的计数以及[{…},{…},{…}],这使我相信它的格式不正确。在我看来是一样的。而且它们似乎都很有效。@Taplar我没有提供所有的信息。该代码是AJAX GET Success函数的一部分。奇怪的是,数组的形式根据我建立/调用它的位置而有所不同——在AJAX函数内部或外部。让我再做一些,我会回答的。谢谢你帮我走到这一步@vashzak@Taplar谢谢OP不包含XML源代码,所以我不再使用文档。