【发布时间】:2021-04-22 06:45:50
【问题描述】:
所以我有一个循环,通过他们的键作为 ID 将 JSON 值附加到他们的输入中。我无法访问嵌套的 JSON 对象“tax_lines”并将其附加到相应的输入。也许我应该以不同的方式来做这件事?
数据.json
{
"purchase_order" :[
{
"id": "1",
"external_number": "1000",
"status": "Created",
"tax_lines": [
{
"name": "GST",
"rate": "0.05",
}
],
"price_list": [
{
"id": "msrp",
"name": "retail price",
"currency": "USD"
],
.....etc
]
}
<input id="external_number" />
<input id="id"/>
<input id="status" />
<input id="tax_lines_name" />
<input id="tax_lines_rate" />
<script>
const data_file = 'data.json';
function fetchPO() {
fetch(data_file).then(response => {
return response.json();
}).then((data => {
for (var i = 0; i < data.purchase_orders.length; i++) {
data.purchase_orders.forEach((PODetails) => {
Object.keys(PODetails).map(value => {
document.getElementBy(value.replace(/ /g, "")).value = PODetails[value];
})
PODetails.tax_lines.forEach((tax) => {
Object.keys(tax).map(value => {
document.getElementByID(value.replace(/ /g, "")).value = tax[value];
})
})
})
}
})
}
</script>
简而言之,如何将 json 对象的数据动态转换为 html 输入?
【问题讨论】:
-
我确定这是一个错字,但你的 for 循环中有 var 1 = 0。
-
您的“JSON”无效(缺少
purchase_order"上的",缺少几个结构的结束括号)。此外,一旦它被解析,它就不再是 JSON,它只是对象。见There's no such thing as a JSON Object。
标签: javascript json nested-loops