jQuery json不输出正确的值

时间:2016-03-19 10:47:45

标签: jquery json parsing

我正在尝试输出“title”,“url”,“imageUrl”,但它只显示“undefined”或“[object Object]”,我必须解决这个问题

我的代码应该像这样输出:

<p>The Word</p>
<p>Art</p>
<p>Attaining</p>

这是我的JSON代码:

{
    "ebookList":{
        "ebook":[
            {
                "title":"The Word",
                "url":"/products/",
                "imageUrl":"/products/",
                "_id":"1"
            },
            {
                "title":"Art",
                "url":"/products/",
                "imageUrl":"/products/",
                "_id":"2"
            },
            {
                "title":"Attaining",
                "url":"/products/",
                "imageUrl":"/products/",
                "_id":"3"
            }
        ]
    }
}

和我的javascript:

function loadBooks() {
    $.getJSON('products/books.json', function (result) {
        $.each(result, function (i, res) {
            alert(res.title);
        });
    });
}

2 个答案:

答案 0 :(得分:1)

提醒标题使用此循环。

for(i=0; i<result.ebookList.ebook.length; i++){
  alert(result.ebookList.ebook[i].title);
}

答案 1 :(得分:1)

问题是你对整个表格的结果做each。因此,您的res变量将包含ebook的每次迭代,此处您只有一个。 ebook数组不包含任何title属性(解释了您获得的undefined),它只包含对象(该示例中有3个数组,用于解释执行时的输出{ {1}}),其中包含alert(res)个属性。

为了做你想做的事,你必须做title,它将遍历$.each(result.ebookList.ebook, function (i, res)对象内的对象。