JS:来自AJAX成功的访问变量

时间:2017-08-13 10:13:16

标签: javascript jquery json

我有这条JS:

  $.ajax({
    url: '/my-url',
    dataType: 'json',
    success: function(json) {
      for (var i = 0, ien = json.data.length; i < ien; i++) {
        createPanel(json.data[i]);
        var options = json.options;
        console.log(options);
      }
    }
  });

这让我得到JSON:

{
    "data": [{
        "id": "2",
        "item": {
            "name": "something here...",
            "company": "1"
        },
        "companies": {
            "name": "my super company"
        }
    }],
    "options": {
        "company": [{
            "value": 2,
            "label": "my second name"
        }, {
            "value": 1,
            "label": "my super company"
        }]
    }
}

在控制台日志中,我可以看到我的json.options,然后我需要在同一个JS文件中填充这段代码:

  editor.field('company').update(
    // options.company "value", "label" has to be populated here
  );

如何在我的代码中稍后访问我的options变量?谢谢!

解决方案

看起来像我的代码调整到这样的东西,诀窍:

  $.ajax({
      url: '/my-url',
      dataType: 'json'
    })
    .done(callback)
    .done(function(json) {
      for (var i = 0, ien = json.data.length; i < ien; i++) {
        createPanel(json.data[i]);
      }
    });

  function callback(response) {
    var options = response.options.company;
    editor.field('company').update(options);
  }

1 个答案:

答案 0 :(得分:-1)

您只需循环访问并获取labelvalue

&#13;
&#13;
var json = {
    "data": [{
        "id": "2",
        "item": {
            "name": "something here...",
            "company": "1"
        },
        "companies": {
            "name": "my super company"
        }
    }],
    "options": {
        "company": [{
            "value": 2,
            "label": "my second name"
        }, {
            "value": 1,
            "label": "my super company"
        }]
    }
};

$(json.options.company).each(function(k, v){
  console.log('Label: ' + v.label + ' And value is ' + v.value);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
&#13;
&#13;
&#13;