首页 > 解决方案 > 有没有办法使用 JavaScript 中的 for 循环将 JSON 数据转换为嵌套数组?

问题描述

我正在尝试使用 JavaScript 在 list.php 上显示数据(一堆即将发生的事件),我认为 for 循环是可行的方法,但我不确定这有什么问题。控制台什么也不显示,以前我在 xhttp.onreadystatechange 之外有我的 for 循环,它给出了“getData is undeclared”错误消息。如果我的问题措辞错误或不清楚,我对此很抱歉。我是一个初学者编码所以请不要过于复杂的答案!

这是我的 list.php 代码:

    <html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <script type="text/javascript"></script>
        <script>
        function getData() {
            var xhttp = new XMLHttpRequest();
            xhttp.onreadystatechange = function() {
                if (xhttp.readyState == 4 && xhttp.status == 200) {
                    var javaobj = JSON.parse(xhttp.response);
                    document.getElementById('div1').innerHTML = javaobj.name + " " + 
javaobj.date + " " + javaobj.time + " " + javaobj.location + " " + javaobj.organiser;
                }
                xhttp.open("GET", "events.json", true);
                xhttp.send();
                //for loop to go split javaobj into array elements             
                for (i = 0; i < javaobj.length; ++i) {
                    console.log(javaobj[i].name);
                    console.log(javaobj[i].date);
                    console.log(javaobj[i].time);
                    console.log(javaobj[i].location);
                    console.log(javaobj[i].organiser);
                }
            }
        }
    </script>
</head>

<body>
    <input type="button" name="data" onclick="getData()" value="Click to View Events" />
    <div id="div1"></div>
</body>

</html>

标签: javascriptphpjsonfor-loopnested

解决方案


推荐阅读