JavaScript 解析树

标签 javascript json parsing recursion tree

我正在用 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/

相关文章:

javascript - 如何确保保存的点击坐标可以重新加载到同一个地方,即使页面布局发生变化?

javascript - Web Worker 何时创建新线程?

java - 如何用 Java 将对象写入 JSON 文件?

jquery - ColdFusion:查询到 JSON

c++ - 类 CSV 格式的 C 库支持多个 "tables"和“命名引用

javascript - 用于 JavaScript/ECMAScript 数组文字生成的 LOOKAHEAD

javascript - 处理拖动时的速度/惯性

c# - 如何跳过 Json.Net 中 IEnumerable 类型的默认 JavaScript 数组序列化?

java - 检查 String 是否可以被 SimpleDateFormat 解析

javascript - 加载前拦截 iframe 位置变化