首页 > 解决方案 > jquery获取数组数组中的值

问题描述

我有以下函数以 json 的形式返回给我的值:

$.ajax({
            type: "GET",
            url: "<?php echo base_url() ?>Travel/get_kyc_details",
            datatype: 'JSON',
            success: function (data) {
                console.log(data);

                $.each(data, function (i, key) {
                    console.log(key);
                });



            }, error: function (data) {
            }
        });

返回的数据格式如下:

{
  "6": {   
    "phone_no_prefix": 254,
    "phone_no": 714339521,
    "contact_name": "Sammy Ojwang",
    "contact_phone_prefix": 254,
    "contact_phone": 77528578,
    "contact_email": "smjwang@gmail.com",
    "passport": "A1730170",
    "national_id": 28200148
  },
  "7": {  
    "phone_no_prefix": 254,
    "phone_no": 700000000,
    "contact_name": "Emergency One",
    "contact_phone_prefix": 254,
    "contact_phone": 7100000,
    "contact_email": "em@gmail.com",
    "passport": "A189234",
    "national_id": 12345678
  },
  "8": { 
    "phone_no_prefix": 254,
    "phone_no": 711111111,
    "contact_name": "Emergency Two",
    "contact_phone_prefix": 254,
    "contact_phone": 7130000,
    "contact_email": "em2@gmail.com",
    "passport": "A8765432",
    "national_id": 981234
  }
}

但是,当我尝试使用以下格式遍历它时,它失败了:

$.each(data, function (i, key) {
                    console.log(key);
                });

以下是我得到的错误:

Uncaught TypeError: Cannot use 'in' operator to search for 'length' in {"9":

如何循环并检索以下数据:phone_no_prefix、contact_name、national_id、contact_email 等?

标签: javascriptjqueryarraysjson

解决方案


我能够使用相同的方法迭代和打印值:

var data = {
  "6": {   
    "phone_no_prefix": 254,
    "phone_no": 714339521,
    "contact_name": "Sammy Ojwang",
    "contact_phone_prefix": 254,
    "contact_phone": 77528578,
    "contact_email": "smjwang@gmail.com",
    "passport": "A1730170",
    "national_id": 28200148
  },
  "7": {  
    "phone_no_prefix": 254,
    "phone_no": 700000000,
    "contact_name": "Emergency One",
    "contact_phone_prefix": 254,
    "contact_phone": 7100000,
    "contact_email": "em@gmail.com",
    "passport": "A189234",
    "national_id": 12345678
  },
  "8": { 
    "phone_no_prefix": 254,
    "phone_no": 711111111,
    "contact_name": "Emergency Two",
    "contact_phone_prefix": 254,
    "contact_phone": 7130000,
    "contact_email": "em2@gmail.com",
    "passport": "A8765432",
    "national_id": 981234
  }
}

$.each(data, function(key,value){ console.log(value) });

推荐阅读