我正在用 jquery 编写一个插件作为文件管理器 我在 php 中构建我的文件夹结构,我使用 ajax 调用该 php 文件,然后返回类似这样的内容
{"1":[],"css":{"admin":[],"tabs":{"skin1":{"images":[]},"skin10":{"图像":[]},"skin11":{"图像":[]},"skin12":{"图像":[]},"skin2":[],"skin3":{"图像":[ ]},"skin4":{"图像":[]},"skin5":{"图像":[]},"skin6":{"图像":[]},"skin7":{"图像":[]},"skin8":{"图片":[]},"skin9":{"图片":[]}}},"img":{"admin":[],"filemanager":[ ],"图标":[]},"js":{"libs":[]},"菜单":{"img":[]},"walpappere":{"1":[]}}
如何使用 jquery 或 javascript 解析信息来执行类似的操作
var mystring = ''
foreach key (would be 1,css etc)
mystring += key
if has children
mystring += key
for each children same as above until all structure is parsed
最佳答案
创建一个执行此操作的函数:http://jsfiddle.net/k5BTr/ .
var obj = {"1":[],"css":{"admin":[],"tabs":{"skin1":{"images":[]},"skin10":{"images":[]},"skin11":{"images":[]},"skin12":{"images":[]},"skin2":[],"skin3":{"images":[]},"skin4":{"images":[]},"skin5":{"images":[]},"skin6":{"images":[]},"skin7":{"images":[]},"skin8":{"images":[]},"skin9":{"images":[]}}},"img":{"admin":[],"filemanager":[],"icons":[]},"js":{"libs":[]},"menu":{"img":[]},"walpappere":{"1":[]}};
function list(items, level) {
for (var key in items) { // iterate
if (items.hasOwnProperty(key)) {
// write amount of spaces according to level
// and write name and newline
document.write(
(new Array(level + 1)).join(" ") +
key +
"<br>"
);
// if object, call recursively
if (items[key] != null && typeof items[key] === "object") {
list(items[key], level + 1);
}
}
}
}
list(obj, 0);
关于JavaScript 解析树,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6655522/