javascript - 如何使用 jQuery 遍历 JSON 数组

标签 javascript jquery arrays json

我正在尝试遍历 JSON 数组。

这里是示例输出

{
    "calls": [
        [
            {
                "interactionId": "2002766591",
                "account_id": "",
                "mid": "",
                "Eic_CallDirection": "O",
                "Eic_RemoteAddress": "5462223378",
                "Eic_LocalAddress": "1062",
                "Eic_State": "I"
            }
        ]
    ],
    "status": [
        {
            "statusId": "Available",
            "userId": "su",
            "loggedIn": false
        }
    ]
}

这是我的 jQuery 代码。

<script>
$(function(){

    function isset(a, b){

        if(typeof a !== "undefined" && a){
            return a
        }

        return b;
    }

    setInterval(function() {

        $.getJSON("showMEssages.php", {method: "getMessages"}, function(data){

            if(data.calls.length == 0 || !data.calls){
                console.log('No Messages');
            }
            var c;

            $.each(data.calls, function(i, item){

                c = item[i];
                console.log(c);

                var interactionId = isset(c.interactionId, 0);
                var Eic_CallDirection = isset(c.Eic_CallDirection, '');
                var Eic_State = isset(c.Eic_State, '');
                var AccoRDI_mid = isset(c.AccoRDI_mid, '');
                var Eic_RemoteAddress = isset(c.Eic_RemoteAddress, '');

                if( Eic_CallDirection == 'I' && Eic_State == 'A'){
                    console.log('Call From ' + Eic_RemoteAddress + ' MID: ' + AccoRDI_mid );
                }

                if(Eic_CallDirection == 'O' && Eic_State == 'C'){
                    console.log('Live Call With ' + Eic_RemoteAddress );
                }


            });
        });

    }, 1000);
});
</script>

我的代码可以正常工作,但我得到了,因为它每秒都在运行,所以我不断在日志中收到此错误

TypeError: c is undefined

错误指向这一行

console.log(c);

此问题的原因是什么,我该如何解决?

最佳答案

在这个函数中:

$.each(data.calls, function(i, item){});

itemdata.calls中每个元素的值,所以可以不用item[i]。只需 c = item 就足够了。

关于javascript - 如何使用 jQuery 遍历 JSON 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30227512/

相关文章:

jquery - 如果可调整大小的小部件的选项中不存在 id/class,则设置另一个字符串 (jquery-ui)

JavaScript 将输入的属性拆分为数组和输出

c - C 中函数指针的数组。如何使用枚举从数组中选择我想要的元素?

javascript - 如何访问Flash中的html元素?

javascript - asp.net 范围 slider 上的值工具提示

javascript - 为什么 jQuery 试图加载我的脚本?

javascript - 在 Chart.js 中绘制线上的点

arrays - 如何为函数的通用数组参数(而不是其 Generator.Element)添加类型约束(协议(protocol)一致性)

python - 将 numpy 数组列表合并到一个数组中(快速)

javascript - service worker 不在现场工作,而是在本地工作