尝试使用Javascript列出我的网站的JSON值

时间:2017-04-02 14:47:48

标签: javascript json

我有一个相当大的JSON文件,其中包含不同电影的评分,评论等。语法如下:

reviews_object={"2396": {"xyz001": {"reg_date": null, "object": 2396, "rating": 3, "mod_date": "2008-11-17", "comment": "", "username": "xyz001"}}, "1107": {"xyz001": {"reg_date": null, "object": 1107, "rating": 4, "mod_date": "2006-11-26", "comment": "", "username": "xyz001"}

Javascript代码

var ratingList = document.querySelector("rating");

function averageRating () {
var reviews = reviews_object;
var reviewList = []; // Array of reviews

for (var i in reviews) {
    reviewList.push(reviews[i])
    console.log(reviewList);
}

}

function displayRating (reviewList) {
for (var i = 0; i < reviewList.length; i++) {
    var li = document.createElement("li")
    li.innerHTML = reviewList[i].rating;
    rating.appendChild(li);

}

}

显然它不起作用,而且我对下一步做什么感到困惑。这个JSON文件仅用于评级和评论,我还有一个关于电影本身(标题,长度等)的文件。两个JSON对象都有对象ID,您可以在我发布的JSON代码中看到。 我想要做的是解析JSON评级对象,并特别将评级键及其值列出到其他JSON文件中的相应对象ID。

可能是我想要做的不好的解释,但问你是否想知道更多

2 个答案:

答案 0 :(得分:0)

json表示具有属性“2396”,“1107”的对象,而不是数组。 你的javascript应该可以运行,只需修复你后端的返回,这样你就可以得到一个实际的数组。

需要2个新属性

$A$7

如果您希望将其分组,则应使用

    [{
        "PROPERTY1": "2396",            
        "PROPERTY2": "xyz001",
        "reg_date": null,
        "object": 2396,
        "rating": 3,
        "mod_date": "2008-11-17",
        "comment": "",
        "username": "xyz001"
    },{
        "PROPERTY1": "1107",
        "PROPERTY2": "xyz001",
        "reg_date": null,
        "object": 1107,
        "rating": 4,
        "mod_date": "2006-11-26",
        "comment": "",
        "username": "xyz001"
    }]

您必须遍历每个节点的data属性。

答案 1 :(得分:0)

一些观察结果:

  • reviews[i]推入reviewList数组后。 reviewList数组看起来像这样。

enter image description here

  • 因此,当您尝试访问reviewList[i].rating函数中的displayRating时,它将返回undefined,因为reviewList[i].rating未根据reviewList结构定义

您必须修改代码

function displayRating(reviewList) {
    for (var i = 0; i < reviewList.length; i++) {
        console.log(reviewList[i].xyz001.rating);
    }
}