[英]How can i access sub elements in JSON doc
這是我的問題,我試圖解析一個具有多個對象的對象,但它們不是數組中對象的形式。 我的數據看起來像這樣
{ "Jurisdiction": {
"Mwd Water Stdby Chg": {
"Tax Type": "Actual",
"Tax Amount": "$10"
},
"Mosq/Fire Ant Assmt": {
"Tax Type": "Actual",
"Tax Amount": "$7"
},
"Vector Control Chg": {
"Tax Type": "Actual",
"Tax Amount": "$2"
},
"Total Of Special Assessments": {
"Tax Type": "Actual",
"Tax Amount": "$19"
}
}
我實際上正在嘗試將其轉換為obj的數組
{ "Jurisdiction":[{
"Tax Name" : "Mwd Water Stdby Chg",
"Tax Type": "Actual",
"Tax Amount": "$10"
}...]
我嘗試了多種方法來訪問沒有元素的元素下的Tax Type等。
var obj = JSON.parse(result);
var keys = Object.keys(obj.Jurisdiction);
for (var i = 0; i < keys.length; i++) {
console.log(keys[i]["Tax Type"])
console.log([keys[i]]["Tax Type"])
}
全部返回未定義
您可以使用Object.entires()
和map()
const obj = { "Jurisdiction": { "Mwd Water Stdby Chg": { "Tax Type": "Actual", "Tax Amount": "$10" }, "Mosq/Fire Ant Assmt": { "Tax Type": "Actual", "Tax Amount": "$7" }, "Vector Control Chg": { "Tax Type": "Actual", "Tax Amount": "$2" }, "Total Of Special Assessments": { "Tax Type": "Actual", "Tax Amount": "$19" } } } let res = Object.entries(obj.Jurisdiction).map(x => ({'Tax Name':x[0],...x[1]})); obj.Jurisdiction = res; console.log(obj)
將map
與Object.entries
一起使用:
const obj = { "Jurisdiction": { "Mwd Water Stdby Chg": { "Tax Type": "Actual", "Tax Amount": "$10" }, "Mosq/Fire Ant Assmt": { "Tax Type": "Actual", "Tax Amount": "$7" }, "Vector Control Chg": { "Tax Type": "Actual", "Tax Amount": "$2" }, "Total Of Special Assessments": { "Tax Type": "Actual", "Tax Amount": "$19" } } }; obj.Jurisdiction = Object.entries(obj.Jurisdiction).map(([k, v]) => ({ "Tax Name": k, ...v })); console.log(obj);
.as-console-wrapper { max-height: 100% !important; top: auto; }
您應該改為使用for in循環:
var obj = { "Jurisdiction": { "Mwd Water Stdby Chg": { "Tax Type": "Actual", "Tax Amount": "$10" }, "Mosq/Fire Ant Assmt": { "Tax Type": "Actual", "Tax Amount": "$7" }, "Vector Control Chg": { "Tax Type": "Actual", "Tax Amount": "$2" }, "Total Of Special Assessments": { "Tax Type": "Actual", "Tax Amount": "$19" } } } var jur = obj.Jurisdiction, j; for(var i in jur){ j = jur[i]; console.log(i); console.log(j['Tax Type']); console.log(j['Tax Amount']); console.log('-----------------------------'); }
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.