从我的JSON对象添加到我的列表数组

时间:2017-08-30 15:13:27

标签: javascript jquery arrays json

这就是我目前正在做的事情。我尝试将json中的值推送到链接数组中,但在输入数组后,值变为undefined。有什么更好的方法来移动数据并让它仍然可用?

var links = [];
$.ajax({
  url: 'data.json',
  dataType: 'json',
  type: 'get',
  cache: false,
  success: function(data) {
    $(data.emails).each(function(index, value) {
      links.push(value);
    });
  }
});

//data.json contains:
{
  "emails": [{
    "source": "1.11913372.-2@multexinvestornetwork.com",
    "target": "pallen@enron.com"
  }]
}
  

使用此代码的结果是相同的。值进入数组,但是当您通过链接访问它们时(值的名称),它返回' undefined'

 $.each(data.emails, function(index, value) { 
        links.push(value);
        console.log(links);
        return value;
    });

Result

3 个答案:

答案 0 :(得分:0)

我认为您的成功回调代码是错误的,

循环data.emails的正确方法是,

   success: function(data) {
        $.each(data.emails, function(index, value) {  // <--- change this
            links.push(value);
            console.log(links);  //<--- updated 
            return value;
        });
    }

答案 1 :(得分:0)

您在不存在的密钥上调用console.log。修改代码以调用并打印出数组,而不是随机属性。

var links = [];
    $.ajax({
    url: 'data.json',
    dataType: 'json',
    type: 'get',
    cache: false,
    success: function(data) {
        $(data.emails).each(function(index, value) {
            links.push(value);
            console.log(links);
            return value;
        });
    }
});

答案 2 :(得分:0)

试试这个

<script src="https://code.jquery.com/jquery-1.12.3.min.js"></script>        
<script type="text/javascript">
//alert("data");
var links = [];
   $.ajax({
         url: 'test1.php',
         type: 'post',
         dataType: 'json',
         data: {

         }
       }).done(function(data) {
        $.each(data.emails, function(index, value) { 
        links.push(value);
        console.log(links);
        return value;
        });
    });

    function getVal(){
        console.log(links[0].target);
    }
</script>
<button onclick="getVal()">Get target</button>