从json文件中读取数据并在html页面上显示它们

时间:2015-11-08 23:30:51

标签: javascript json

我有一个像这样的json文件:

[
 {
 "X_id": [ "id1" ],
"contents.value": [ "AA" ],
"contents.count": [ 95 ] 
},
{
 "X_id": [ "id2" ],
"contents.value": [ "BB" ],
"contents.count": [ 41 ] 
},
{
 "X_id": [ "id3" ],
"contents.value": [ "CC" ],
"contents.count": [ 36 ] 
},
{
 "X_id": [ "id4" ],
"contents.value": [ "DD" ],
"contents.count": [ 4 ] 
},
{
 "X_id": [ "id5" ],
"contents.value": [ "EE" ],
"contents.count": [ 33 ] 
}
]

我希望在我的html页面上显示这些值,对于测试我首先尝试在控制台中显示它们:

$.getJSON("example.json", function(data) {})
    .done(function(data) {
       $.each(data.items, function(i, item) {
            console.log(item.contents.value);
        }); 
    })
    .fail(function() {
        console.log("error");
    })
    .always(function(data) {
        console.log(data);
    });

但我收到此错误消息:

  

TypeError:a未定义

     

... rCase()},每个:功能(A,C,d){风险   E,F = 0,G =则为a.length,H =克=== b || p.isFunction的(a);如果(d ...

我该如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

您的数据是一个对象数组。但您正试图将data.items传递给$.each。数组没有这样的属性:

> var data = [];
> data.items
undefined

您可能希望将data本身传递给$.each

另见Access / process (nested) objects, arrays or JSON

Wrt console.log(item.contents.value);(这是错误的),看看How to access object properties containing special characters?

答案 1 :(得分:0)

阵列没有items属性。只需使用data代替:

$.getJSON("example.json", function(data) {})
    .done(function(data) {
       $.each(data, function(i, item) {
            console.log(item.contents.value);
        }); 
    })
    .fail(function() {
        console.log("error");
    })
    .always(function(data) {
        console.log(data);
    });

答案 2 :(得分:0)

下面的代码工作正常检查一次,为什么因为获取json数据而得到错误是数组对象不是那么需要传递数据[0]然后你可以迭代,在键值对中值又是数组。

brand=$(awk -F '|' '/CONNECT/ {latest = $3} END {print latest}')