如何使用jQuery从json对象中获取一些值?
我有这个json文件,我在json对象中转换了它:如何使用jQuery从json对象中获取一些值?,jquery,json,ajax,loops,Jquery,Json,Ajax,Loops,我有这个json文件,我在json对象中转换了它: [ { "id": "1", "nome": "erwrw", "cognome": "sdsfdfs", "CF": "qwert", "eta": "27", "sesso": "uomo", "indirizzo": "qwerrt", "luogo": "wewrw", "provincia": "ewrewrw", "citta": "erwrwr",
[
{
"id": "1",
"nome": "erwrw",
"cognome": "sdsfdfs",
"CF": "qwert",
"eta": "27",
"sesso": "uomo",
"indirizzo": "qwerrt",
"luogo": "wewrw",
"provincia": "ewrewrw",
"citta": "erwrwr",
"comune": "ewrewrw"
},
{
"id": "2",
"nome": "mario",
"cognome": "rossi",
"CF": "MRSI4343242",
"eta": "35",
"sesso": "uomo",
"indirizzo": "via rossi 10",
"luogo": "bergamo",
"provincia": "bergamo",
"citta": "bergamo",
"comune": "bergamo"
}
]
使用ajax,我可以获取并打印html文件中的所有键和值:
function getData() {
var container = $('div.container');
console.log("container",container);
$.ajax({
type: 'GET',
url: 'data/persona1.json',
dataType: 'json',
success:function(data){
console.log(data);
console.log(data[0].nome);
$.each(data, function(index, item) {
$.each(item, function(key, value){
container.append(key + ' : ' + value + '<br/>');
});
container.append('<br/><br/>');
});
},
});
};
函数getData(){
var container=$('div.container');
控制台日志(“容器”,容器);
$.ajax({
键入:“GET”,
url:'data/persona1.json',
数据类型:“json”,
成功:功能(数据){
控制台日志(数据);
console.log(数据[0].nome);
$。每个(数据、功能(索引、项目){
$。每个(项目、功能(键、值){
container.append(key+':'+value+''); }); container.append(“
”); }); }, }); };
但我如何才能只打印每个对象的“nome”、“cognome”、“citta” 移除内部
每个循环。然后打印所需的密钥:
$.each(data, function(index, item) {
container.append('nome : ' + item['nome']+ '<br/>');
container.append('cognome : ' + item['cognome']+ '<br/>');
container.append('citta: ' + item['citta']+ '<br/>');
container.append('<br/><br/>');
});
$。每个(数据、函数(索引、项){
container.append('nome:'+item['nome']+'
');
append('cognome:'+item['cognome']+'
');
container.append('citta:'+item['citta']+'
');
container.append(“
”);
});
如果您知道要检索的属性的名称,可以直接按名称访问它们,无需循环,请尝试以下操作:
var数据=[{
“id”:“1”,
“nome”:“erwrw”,
“cognome”:“sdsfdfs”,
“CF”:“qwert”,
“eta”:“27”,
“sesso”:“uomo”,
“indirizzo”:“qwerrt”,
“罗戈”:“wewrw”,
“省”:“ewrewrw”,
“citta”:“erwrwr”,
“comune”:“ewrewrw”
}, {
“id”:“2”,
“诺姆”:“马里奥”,
“cognome”:“rossi”,
“CF”:“MRSI43242”,
“eta”:“35”,
“sesso”:“uomo”,
“indirizzo”:“via rossi 10”,
“罗戈”:“贝加莫”,
“省”:“贝加莫”,
“西塔”:“贝加莫”,
“comune”:“bergamo”
}]
var container=$('div.container');
$。每个(数据、功能(索引、项目){
container.append('Nome:'+item.Nome+'
Cognome:'+item.Cognome+'
Citta:'+item.citte+'
);
});代码>
最快的方法-使用您需要的密钥创建一个数组,并检查循环中的密钥是否在数组中
fields = ['nome','cognome','citta'];
...
if ($.inArray(key, fields)){
...
}
通过这种方式,修改字段要比单独添加if/else或每个名称容易得多。只需在$中添加if条件。each()
var数据=[
{
“id”:“1”,
“nome”:“erwrw”,
“cognome”:“sdsfdfs”,
“CF”:“qwert”,
“eta”:“27”,
“sesso”:“uomo”,
“indirizzo”:“qwerrt”,
“罗戈”:“wewrw”,
“省”:“ewrewrw”,
“citta”:“erwrwr”,
“comune”:“ewrewrw”
},
{
“id”:“2”,
“诺姆”:“马里奥”,
“cognome”:“rossi”,
“CF”:“MRSI43242”,
“eta”:“35”,
“sesso”:“uomo”,
“indirizzo”:“via rossi 10”,
“罗戈”:“贝加莫”,
“省”:“贝加莫”,
“西塔”:“贝加莫”,
“comune”:“bergamo”
}
]
$。每个(数据、功能(索引、项目){
console.log(项目)
$。每个(项目、功能(键、值){
if(key==“nome”| | key==“cognome”| | key==“citta”)
$('.container').append(key+':'+value+'
');
});
$('.container').append('
');
});代码>
$。每个
都非常慢。如果您有大量数据,可以使用for loop
来获得更高的性能
与测试性能的链接:
var数据=[{
“id”:“1”,
“nome”:“erwrw”,
“cognome”:“sdsfdfs”,
“CF”:“qwert”,
“eta”:“27”,
“sesso”:“uomo”,
“indirizzo”:“qwerrt”,
“罗戈”:“wewrw”,
“省”:“ewrewrw”,
“citta”:“erwrwr”,
“comune”:“ewrewrw”
}, {
“id”:“2”,
“诺姆”:“马里奥”,
“cognome”:“rossi”,
“CF”:“MRSI43242”,
“eta”:“35”,
“sesso”:“uomo”,
“indirizzo”:“via rossi 10”,
“罗戈”:“贝加莫”,
“省”:“贝加莫”,
“西塔”:“贝加莫”,
“comune”:“bergamo”
}]
var container=$('div.container');
对于(var t=0;tif(key==“nome”| | key==“cognome”| | key==“citta”)