jQuery json循环未显示输出

时间:2019-05-06 15:08:03

标签: jquery json

我是一个新的程序员,试图学习JSON和JQUERY。

我想从URL获取数据,该URL有效,但由于某种原因应用for循环时,它将无法工作。我试着在网上看,但似乎都没用。

<!DOCTYPE html>
<html>
<head>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.0/jquery.min.js"></script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.7/umd/popper.min.js"></script>
  <script src="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js"></script>
</head>
<body>

</body>

<script>
$(document).ready(function(){

    $.getJSON('myurlgoeshere', function(data){

        for(i = 0; i < data.length; i++) {
            document.write(data.members[i].members);
        }

    });
});
</script>

</html>

我的Json代码如下(抱歉,删除了数组中的数据,因为这是私有的)。

{
"channels": [],
"instant_invite": null,
"id": "574592393862708225",
"members": [],
"name": "553b"
}

我希望它循环播放,以便例如显示所有当前成员。但是当我应用此代码时,什么也没有显示(也没有错误)。

2 个答案:

答案 0 :(得分:0)

似乎您不想迭代整个返回的JSON,而只希望迭代响应的members部分。

$(document).ready(function(){

    $.getJSON('myurlgoeshere', function(data) {

        // checking if the "data.members" node exists. 
        // You could extend the check wit " && data.members.length" to make sure the returned element is iterable
        if (data && data.members) {

            for (i = 0; i < data.members.length; i++) {
                document.write(data.members[i]);
            }
        } else {
            document.write("Returned content did not contain the required 'members' node");
        }
    });
});

答案 1 :(得分:0)

我将示例写为html / JavaScript。

<script type="text/javascript">
function fntTest2 (data){

    //for(i = 0; i < data.length; i++) {
    for(i = 0; i < data.members.length; i++) {
        alert(data.members[i].members);
    }

}

var json1 = {
"channels": [],
"instant_invite": null,
"id": "574592393862708225",
"members": [],
"name": "553b"
};

var json2 = {
"channels": [],
"instant_invite": null,
"id": "574592393862708225",
"members": [{
"members": "0",
"A": "12345",
"B": "12345",
"C": "12345",
"D": "12345",
},
{
"members": "1",
"A": "12389",
"B": "12389",
"C": "12389",
"D": "12389",
}],
"name": "553b"
};

fntTest2(json1);
fntTest2(json2);
</script>