Это то, чем я сейчас занимаюсь. Я попытался просто вставить значения из моего 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"
  }]
}

Результат от использования этого кода одинаков. Значения входят в массив, но когда вы обращаетесь к ним через ссылки. (Имя значения) возвращает «неопределенное»

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

Результат

0
Robert Duffie 30 Авг 2017 в 18:13

3 ответа

Лучший ответ

Попробуй это

<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>
0
Shashidhara 30 Авг 2017 в 15:56

Я думаю, что ваш код обратного вызова успеха неверен,

Правильный путь к циклу data.emails,

   success: function(data) {
        $.each(data.emails, function(index, value) {  // <--- change this
            links.push(value);
            console.log(links);  //<--- updated 
            return value;
        });
    }
0
Muthu Kumaran 30 Авг 2017 в 15:16

Вы звоните 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;
        });
    }
});
0
Joseph Cho 30 Авг 2017 в 15:16