我使用AJAX调用以JSON格式从数据库返回对象列表。 然后将它们显示为自动完成文本输入的一部分。 问题是我想输出/显示列表中每个对象的NAME属性。
$(function() {
$("#ingredient-search").autocomplete({
source : function(request, response) {
$.ajax({
url : "searchcontroller",
type : "GET",
data : {
term : request.term
},
dataType : "json",
success : function(data) {
response(data);
}
});
}
});
实际的AJAX&所以工作正常。我只是不确定如何迭代数据中的每个元素'并从每个JSON对象输出name属性。
由于
答案 0 :(得分:3)
您可以使用for in循环遍历Json属性:
SELECT * FROM `users` WHERE CONCAT(`name`, ' ', `lastname`) REGEXP'.*{SEARCH_DATA}.*'
例如,如果对象是:
for(var key in data.dates) {
console.log('a = '+data[key]["a"]+', b = '+data[key]["b"]);
}
输出将是:
data = [{"a":1,"b":"test b1"},{"a":2,"b":"test b2"},{"a":3,"b":"test b3"}];
a = 1, b = test b1
a = 2, b = test b2
a = 3, b = test b3

var data = [{"a":1,"b":"test b1"},{"a":2,"b":"test b2"},{"a":3,"b":"test b3"}];
for(var key in data) {
document.getElementById('result').innerHTML += 'a = '+data[key]["a"]+', b = '+data[key]["b"]+'<br>';
}
&#13;
如果您只有一个对象并且想要获取属性名称,则可以使用以下命令:
<span id='result'></span>
输出将是:
var data = {"a":1, "b":"test b", "c":"test c", "d":215, "e":"test e"}
for(var key in data) {
console.log(key);
}
希望这有帮助。
答案 1 :(得分:1)
在不了解您的json结构的情况下,试试这个。
$.each(data,function(key,val){
console.log(val.name);
})
答案 2 :(得分:0)
您可以收集列表中每个对象的属性,如下所示:
var suggestions = $.map(data, function(record) {
return {id:record['id'], name:record['name']};
});
你得到一个对象数组[{id:1,名字:'Bob'},{id:2,名字:'Sam'}]
答案 3 :(得分:0)
jQuery具有内置功能,可以执行如下操作:http://api.jquery.com/jquery.getjson/
从文档修改
$.getJSON( "searchcontroller", function( json ) {
//where `json` is your JSON data
console.log( "NAME from JSON Data: " + json.name );
});
基本上它的作用是从&#34; test.json&#34;获取JSON数据。或者您喜欢的任何来源,并将JSON数据放入我们可以使用变量名json
访问的对象中。您可以通过json.name
获取名称字段。