将 JSON 作为变量传递给 jsTree

Passing JSON as variable to jsTree

我有一个变量,我想将它传递给 $('#tree').jstree()

尝试过:

$('#tree').jstree({
    plugins: ["checkbox", "types"],
    "types": {
        "file": {
            "icon": "jstree-file"
        }
    },
    'core': {
        'data':  mdata.data

    }
});
//------------------------------
$('#tree').jstree({
    plugins: ["checkbox", "types"],
    "types": {
        "file": {
            "icon": "jstree-file"
        }
    },
    'core': {
        'data':  JSON.stringify(mdata.data)

    }
});
//------------------------------
 $('#tree').jstree(mdata.data)

我的 JSON 变量 (mdata.data) 已被 JSON.parse() 解析。我已经通过 jsonlint.com 验证了它并且它有效。这是:

   [{
    "soslist": [{
        "code_intext": "utf-8",
        "count_of_pages": 2,
        "count_of_records": 7,
        "curobj": "1",
        "obj": "1",
        "page": 1
    }, {
        "code_intext": "utf-8",
        "count_of_pages": 2,
        "count_of_records": 7,
        "curobj": "1",
        "obj": "1",
        "page": 1
    }],
    "system": [{
        "count_of_pages": 2,
        "count_of_records": 7,
        "curobj": "1",
        "page": 1
    }]
}]

mdata.data 在控制台中:

有没有可能或者 jsTree 需要特定的 JSON 结构和类似 idparent_id 的东西?

jsTree 需要特定的 JSON 结构。来自他们的 documentation:

// Expected format of the node (there are no required fields)
{
  id          : "string" // will be autogenerated if omitted
  text        : "string" // node text
  icon        : "string" // string for custom
  state       : {
    opened    : boolean  // is the node open
    disabled  : boolean  // is the node disabled
    selected  : boolean  // is the node selected
  },
  children    : []  // array of strings or objects
  li_attr     : {}  // attributes for the generated LI node
  a_attr      : {}  // attributes for the generated A node
}

您的对象采用完全不同的格式,因此无法使用。