Javascript 如何将复杂的嵌套json映射为jquery自动完成格式?
如何将复杂的嵌套json映射为jquery自动完成格式?我试图将我的自定义json映射到所需的jquery自动完成格式标签、值。。。但是我的列表是“未定义的”。这是我的设置: JSON: Javascript:Javascript 如何将复杂的嵌套json映射为jquery自动完成格式?,javascript,json,jquery-ui-autocomplete,Javascript,Json,Jquery Ui Autocomplete,如何将复杂的嵌套json映射为jquery自动完成格式?我试图将我的自定义json映射到所需的jquery自动完成格式标签、值。。。但是我的列表是“未定义的”。这是我的设置: JSON: Javascript: $('#input-search').autocomplete({ source: function ( request, response ) { $.ajax({ type: 'GET', url: '/source.php', dataType: "j
$('#input-search').autocomplete({
source: function ( request, response ) {
$.ajax({
type: 'GET',
url: '/source.php',
dataType: "json",
success: function( data ) {
response( $.map( data.data.accounts, function( value, key ) {
return {
label: value.name,
value: value.name,
id: value.code
}
}));
}
});
},
create: function() {
$(this).data('ui-autocomplete')._renderItem = function (ul, item) {
return $( "<li></li>" )
.append( "<a>" + item.label + "</a>" )
.appendTo( ul );
};
}
});
$(“#输入搜索”)。自动完成({
来源:功能(请求、响应){
$.ajax({
键入:“GET”,
url:“/source.php”,
数据类型:“json”,
成功:功能(数据){
响应($.map(data.data.accounts),函数(value,key){
返回{
标签:value.name,
value:value.name,
id:value.code
}
}));
}
});
},
创建:函数(){
$(此).data('ui-autocomplete')。\u renderItem=函数(ul,项){
返回$(“”)
.append(“+item.label+”)
.附录(ul);
};
}
});
从您的数据示例来看,您不是在嵌套的accounts数组上迭代,而是在数据数组上迭代。试着这样做:
$('#input-search').autocomplete({
source: function ( request, response ) {
$.ajax({
type: 'GET',
url: '/source.php',
dataType: "json",
success: function( data ) {
var results = [];
$.each(data.data, function(d){
var mapped = $.map(d.accounts, function( value, key ) {
return {
label: value.name,
value: value.name,
id: value.code
};
})
results = results.concat(mapped);
});
response(results);
}
});
},
create: function() {
$(this).data('ui-autocomplete')._renderItem = function (ul, item) {
return $( "<li>" )
.append( "<span>" + item.label + "</span>" )
.appendTo( ul );
};
}
});
$(“#输入搜索”)。自动完成({
来源:功能(请求、响应){
$.ajax({
键入:“GET”,
url:“/source.php”,
数据类型:“json”,
成功:功能(数据){
var结果=[];
$.each(数据、数据、函数(d){
var-mapped=$.map(d.accounts,function(value,key){
返回{
标签:value.name,
value:value.name,
id:value.code
};
})
结果=结果。concat(映射);
});
答复(结果);
}
});
},
创建:函数(){
$(此).data('ui-autocomplete')。\u renderItem=函数(ul,项){
返回$(“”)
.append(“+item.label+”)
.附录(ul);
};
}
});
从您的数据示例来看,您不是在嵌套的accounts数组上迭代,而是在数据数组上迭代。试着这样做:
$('#input-search').autocomplete({
source: function ( request, response ) {
$.ajax({
type: 'GET',
url: '/source.php',
dataType: "json",
success: function( data ) {
var results = [];
$.each(data.data, function(d){
var mapped = $.map(d.accounts, function( value, key ) {
return {
label: value.name,
value: value.name,
id: value.code
};
})
results = results.concat(mapped);
});
response(results);
}
});
},
create: function() {
$(this).data('ui-autocomplete')._renderItem = function (ul, item) {
return $( "<li>" )
.append( "<span>" + item.label + "</span>" )
.appendTo( ul );
};
}
});
$(“#输入搜索”)。自动完成({
来源:功能(请求、响应){
$.ajax({
键入:“GET”,
url:“/source.php”,
数据类型:“json”,
成功:功能(数据){
var结果=[];
$.each(数据、数据、函数(d){
var-mapped=$.map(d.accounts,function(value,key){
返回{
标签:value.name,
value:value.name,
id:value.code
};
})
结果=结果。concat(映射);
});
答复(结果);
}
});
},
创建:函数(){
$(此).data('ui-autocomplete')。\u renderItem=函数(ul,项){
返回$(“”)
.append(“+item.label+”)
.附录(ul);
};
}
});