将外部JSON URL标签和值拉到新阵列

时间:2016-06-29 14:05:11

标签: javascript jquery json ajax getjson

我的小提琴http://jsfiddle.net/UGYzW/319/数据目前来自本地来源,简称为数据'。我如何从外部值中撤回数据?请使用http://echo.jsontest.com/key/value/one/two或后退价值' mralexgray'从第一个登录项目。我们是否需要将项目推送到新阵列?

最后使用JSONP,JSON还是.AJAX更好?

  var data =[
        {'label':'Core','value':1},
        {'label':' Selectors','value':2},
        {'label':'Events' ,'value':3}]; 

var nameArray = data.map(function(item){
    return {value: item.value, label: item.label};
});


$("#meta-area").autocomplete({
        source:nameArray,
        select: function(e, ui) {
            e.preventDefault() // <--- Prevent the value from being inserted.
            $("#meta_search_ids").val(ui.item.label);

            $(this).val(ui.item.value);
        }
    });
    //alert("this loaded");

1 个答案:

答案 0 :(得分:0)

由于您将data变量创建为Array,因此在您的ajax响应之后将所有变量推送到数组。稍后相同的脚本将使用map函数

jsfiddle example此处

 $.ajax({
    url:'https://api.github.com/users/mralexgray/repos',  
    success:function(data) {
    var dataArray = [];
    for(var i=0;i<data.length;i++){
       dataArray.push(data[i]);
       console.log(data[i]);
    }
    var nameArray =  dataArray.map(function(item){
        return {value: item.owner, label: item.name};
    });

    $("#meta-area").autocomplete({
      source:nameArray,
      select: function(e, ui) {
          e.preventDefault();
          $("#meta_search_ids").val(ui.item.label);
          $(this).val(ui.item.value);
       }
     }); 
    }
  });