在javascript中显示json数据不起作用

时间:2012-05-29 08:05:39

标签: javascript json

我创建了一个var并将JSON数据(逗号分隔值)传递给它,但是当我想显示json数据时 - 它只返回null。这是代码:

<script type="text/javascript">
var data1 = [
    {order:"145",country:"Dubai",employee:"permanent",customer:"self"}
];  

document.write(data1);
</script>

2 个答案:

答案 0 :(得分:3)

你可以这样做:

var data1 = [{order:"145",country:"Dubai",employee:"permanent",customer:"self"} ];  

data1.forEach(function(data){
    document.write(data.order);
    document.write(data.country);
    document.write(data.employee);
    document.write(data.customer);
});

或者你可以这样做

var data1 = [
    {order:"145",country:"Dubai",employee:"permanent",customer:"self"}
];  

$.each(data1[0], function(key, value){
    document.write(key + " " + value); 
});

无论哪种方式,只在列表中存储一个对象会使这个答案有点多余,除非我向您展示如何循环多个对象。

var data1 = [
    {order:"145",country:"Dubai",employee:"permanent",customer:"self"},
    {order:"212",country:"Abu-Dhabi",employee:"permanent",customer:"Tom"}
];  

data1.forEach(function(data){
    $.each(data, function(key, value){
        document.write(key+" "+value);
    });
});

我在这里使用混合jQuery,这可能不是最佳的,但至少它可以表明有多种方法可以完成你需要的东西。

此外,数组上的forEach()方法是MDN开发的方法,因此它可能不符合交叉浏览器,只是抬头!

如果你想要纯粹的JS,这是其中一种方法

var data1 = [
    {order:"145",country:"Dubai",employee:"permanent",customer:"self"},
    {order:"212",country:"Abu-Dhabi",employee:"permanent",customer:"Tom"}
];  

for(json in data1){
    for(objs in data1[json]){
        document.write(objs + " : " + data1[json][objs]);
    }
}

答案 1 :(得分:0)

为了简单快速地打印JSON,可以执行类似下面的操作,对于对象也可以这样做;

 var json = {
        "title" : "something",
        "status" : true,
        "socialMedia": [{
            "facebook": 'http://facebook.com/something'
        }, {
            "twitter": 'http://twitter.com/something'
        }, {
            "flickr": 'http://flickr.com/something'
        }, {
            "youtube": 'http://youtube.com/something'
        }]
    };
现在要在屏幕上打印,简单的循环就足够了,但请不要e,它不会打印数组而是打印[object Object]。为了简单回答,我不会深入打印数组键和屏幕值。

希望这对某人有用。干杯!

for(var i in json) {
    document.writeln('<strong>' + i + '</strong>' +json[i] + '<br>');
    console.log(i +  ' ' + json[i])
}