2016-10-07 8 views
1

私は、このJSONファイルを持っていると私はJSONオブジェクトでそれを変換する:AjaxでjQueryを使用して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" 
    } 
] 

を私は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/>'); 
      }); 
     }, 

}); 
}; 

しかしどのようにすることができますすべてのオブジェクトのちょうど "nome"、 "cognome"、 "citta"を印刷するのですか?

+1

'場合(キー== "ノーム" ||キー== "cognome" ||キー== "チッタ") ' –

答えて

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

次に、あなたがしたいキーを印刷
0

最も速い方法 - 必要なキーを持つ配列を作成し、キーが配列内にある場合はループをチェックインします。

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

こうすることで、if/elseまたはそれぞれの名前を別々に追加するよりも、フィールドを変更する方がずっと簡単になります。

0

あなた$.each()

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>

0

$.eachの条件が非常に遅い場合だけ置きます。多くのデータがある場合は、より多くのパフォーマンスのためにfor loopを使用できます。試験性能と

enter image description here リンク:link

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/>'); 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 
<div class="container"></div>

関連する問題