如何使用jQuery从json对象中获取一些值?

时间:2016-10-07 13:13:39

标签: 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",
    "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/>');
            });
        },

});
};

但我怎样才能打印&#34; nome&#34;,&#34; cognome&#34;,&#34; citta&#34;每个对象?

5 个答案:

答案 0 :(得分:3)

如果您知道要检索的属性的名称,可以直接通过名称访问它们而不使用循环,请尝试:

var data = [{
    "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"
}]

var container = $('div.container');
$.each(data, function(index, item) {
    container.append('Nome : ' + item.nome + '<br/>Cognome : ' + item.cognome + '<br/>Citta : ' + item.citte + '<br/><br/><br/>');
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="container"></div>

答案 1 :(得分:0)

删除内部each循环。然后打印您想要的键:

$.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/>');
});

答案 2 :(得分:0)

最快的方法 - 使用您需要的密钥创建一个数组,并在密钥位于数组中时检查循环。

fields = ['nome','cognome','citta'];
...
if ($.inArray(key, fields)){
    ...
}

这样,修改字段比分别添加if / else或每个名称要容易得多。

答案 3 :(得分:0)

只需在$.each()

中添加if条件即可

var data = [
  {
    "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"
  }
]


$.each(data, function(index, item) {
                console.log(item)
                $.each(item, function(key, value){
                    if(key == "nome" || key == "cognome" || key == "citta")
                    $('.container').append(key + ' : ' + value + '<br/>');
                });
                $('.container').append('<br/><br/>');
            });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="container"></div>

答案 4 :(得分:0)

$.each非常慢。如果你有大量数据,可以使用for loop来获得更高的性能。

enter image description here 与测试效果相关联:link

&#13;
&#13;
var data = [{
    "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"
}]

var container = $('div.container');
for(var t=0;t<data.length;t++){
     container.append('Nome : ' + data[t].nome + '<br/>Cognome : ' + data[t].cognome + '<br/>Citta : ' + data[t].citte + '<br/><br/><br/>');
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="container"></div>
&#13;
&#13;
&#13;