开发者社区> 问答> 正文

javascript的递归? 如何写出js的递归然后读取json添加到相对应的dom中?

下面是一个多级嵌套的JSON,使用AJAX方式,应用递归把每一级JSON,都添加 到相应的DOM中。

{
    "name": "BeJson",
    "url": "http://www.bejsoxxn.com",
    "page": 88,
    "isNonProfit": true,
    "address": {
        "street": "科技园路.",
        "city": "江苏苏州",
        "country": "中国"
    },
    "links": [
        {
            "name": "Google",
            "url": "http://www.google.com"
        },
        {
            "name": "Baidu",
            "url": "http://www.baidu.com"
        }
    ]
}
    for(var i in data){
         var ul = document.createElement("ul");
         var li = document.createElement('li');
         li.innerHTML=data[i];
         ul.appendChild(li);
       document.body.appendChild(ul);
    }
以下是浏览器显示的信息

BeJson
http://www.bejsoxxn.com
88
true
[object Object]
[object Object],[object Object]

我想让 浏览器页面倒数一二 显示json里的信息。请问怎么做?
别人让我写遍历一次。
我不知道怎么写出来
screenshot

展开
收起
a123456678 2016-03-13 18:13:25 3696 0
1 条回答
写回答
取消 提交回答
  • Boolean.prototype.show = Number.prototype.show = String.prototype.show = function () {
        return this.toString()
    }
    
    Object.prototype.show = function(tag) {
        var open="<ul>",close="</ul>";
        
        var k,str = "";
        for(k in this){
            if(this.hasOwnProperty(k)){
                str += "<li>" + k + ":" + this[k].show() + "</li>";
            }
        }
        return open + str + close;
    }
    // 这句可以不加,如果 Array 和 Object 显示一样的话
    // Array.prototype.show = Object.prototype.show
    
    var data = {
        "name": "BeJson",
        "url": "http://www.bejsoxxn.com",
        "page": 88,
        "isNonProfit": true,
        "address": {
            "street": "科技园路.",
            "city": "江苏苏州",
            "country": "中国"
        },
        "links": [
            {
                "name": "Google",
                "url": "http://www.google.com"
            },
            {
                "name": "Baidu",
                "url": "http://www.baidu.com"
            }
        ]
    }
    // 某个标签
    document.body.innerHTML = data.show()
    2019-07-17 19:02:57
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
JavaScript函数 立即下载
Delivering Javascript to World 立即下载
编程语言如何演化-以JS的private为例 立即下载