JSON ファイルからデータを取得して有効に活用する方法を学んでいるところです。for..in ループが役立つことがわかりましたが、JSON から値を取得するにはやりすぎていることはわかっています。ファイル。
これは私の JSON です。このように構造化する必要はありません。
var dollars = { "zipcodes": {
"one": {
"donors": {
"donor_profile1": {
"name": "Doug Smith",
"address" : "123 main st",
"gifts":{
"gift0": {
"recipient":"Greg",
"amount": 45000,
"date":"7/1/2013"
},
"gift1":{
"recipient":"Greg",
"amount": 6000,
"date":"7/1/2013"
},
"gift2":{
"recipient":"Marty",
"amount": 2000,
"date":"7/1/2013"
}
}
},
"donor_profile2": {
"name": "Bert Bernard",
"address" : "123 South st",
"gifts": {
"gift0": {
"recipient":"Greg",
"amount": 1200,
"date":"7/4/2013"
},
"gift1":{
"recipient":"Marty",
"amount": 400,
"date":"7/9/2013"
},
"gift2":{
"recipient":"Marty",
"amount": 510,
"date":"7/21/2013"
}
}
}
}
}
各寄付者からの贈り物をすべて集めて合計したいと思います。私はこのプログラムを作成してすべてのギフト金額を受け取りましたが、寄付者によって分けられていません。これをよりきれいにする方法について何かアドバイスはありますか?
var info = dollars.zipcodes.one;
function buildSum(){
for (var key in info){
if (info.hasOwnProperty(key)) {
var person = info[key];
};
for (prop in person) {
if(person.hasOwnProperty(prop)){
var name = person[prop].gifts;
};
for(value in name){
if(name.hasOwnProperty(value)){
var money = name[value].amount;
};
}
}
}
}
buildSum();