Javascript 使用嵌套字段迭代Json对象
我在迭代json对象时遇到了一些困难。有一些嵌套字段,这让我感到困惑 这是我的JSON数据Javascript 使用嵌套字段迭代Json对象,javascript,json,Javascript,Json,我在迭代json对象时遇到了一些困难。有一些嵌套字段,这让我感到困惑 这是我的JSON数据 { "_embedded": { "request_fields": [{ "reference": null, "name": "Qual será o serviço?", "label": "Qual será o serviço?", "placeholder": "Qual será o serviço?",
{
"_embedded": {
"request_fields": [{
"reference": null,
"name": "Qual será o serviço?",
"label": "Qual será o serviço?",
"placeholder": "Qual será o serviço?",
"values": {
"Coloração": "Coloração",
"Corte": "Corte",
"Escova ": "Escova ",
"Escova progressiva/definitiva": "Escova progressiva/definitiva",
"Luzes": "Luzes"
}
}, {
"reference": null,
"name": "Para quem será o serviço?",
"label": "Para quem será o serviço?",
"placeholder": "Para quem será o serviço?",
"values": {
"Criança": "Criança",
"Homem": "Homem",
"Mulher": "Mulher"
}
}]
}
}
这就是我到目前为止所尝试的--更新
for (key in response) {
for (i in response[key].request_fields) {
// console.log(response[key].request_fields[i].values);
document.getElementById("form").innerHTML += "<div class='section'>" +
"<label>" + response[key].request_fields[i].label + "</label>" +
"<label>" for (e in response[key].request_fields[i].values) { response[key].request_fields[i].values[e] } "</label>" +
"<label>" + response[key].request_fields[i].values{0} + "</label>" +
"</div>" ;
}
}
for(输入响应){
对于(响应[key]中的i)。请求\u字段){
//console.log(响应[key]。请求\字段[i]。值);
document.getElementById(“表单”).innerHTML+=“”+
“”+响应[key]。请求字段[i]。标签+“”+
“”对于响应[key]中的(e)。请求[u]字段[i]。值){response[key]。请求[u]字段[i]。值[e]}“”+
“”+响应[key]。请求_字段[i]。值{0}+“”+
"" ;
}
}
现在我越来越紧张了
未捕获的SyntaxError:的意外标记
在我的第三个“for”中,要打印“values”这是因为索引
i
不在值中,您需要另一个迭代器,或者一个特定的值,或者只是将其json,或者将其连接到字符串
for (key in response) {
for (i in response[key].request_fields) {
console.log(response[key].request_fields[i].values);
var values=(()=>{
var out="";
for(var ii in response[key].request_fields[i].values){
out+=ii+": "+response[key].request_fields[i].values[ii]+"\n";
}
return out;
})();
document.getElementById("form").innerHTML += "<div class='section'>" + "<label>" + response[key].request_fields[i].label + "</label>" + "<label>" +
values + "</label>" + "</div>";
}
}
for(输入响应){
对于(响应[key]中的i)。请求\u字段){
console.log(响应[key]。请求\字段[i]。值);
变量值=(()=>{
var out=“”;
对于(var ii在响应[key]中)。请求_字段[i]。值){
out+=ii+“:“+响应[键]。请求\字段[i]。值[ii]+“\n”;
}
返回;
})();
document.getElementById(“form”).innerHTML++=“”+++响应[key]。请求\字段[i]。标签+++
值+++;
}
}
您的意思是在console.log()
语句中,还是在您使用.values[i]
的HTML中得到“未定义”?我希望后者是未定义的,因为I
不是values
object.yes中的属性名之一。我是在console.log上看到的,首先console.log()
对我来说很好:-只有我刚才提到的值[i]
不起作用。我知道。我的问题实际上是我需要解决的“价值观”或“仅仅是json”——这意味着什么?嗯。如何“只使用json”?json.stringify(响应[key].request_字段[i].values)
你的匿名函数不需要一个return
语句吗?老实说,我不明白你在这里做什么,但不知怎的它起了作用。你能确切地解释一下“var values=(()=>{”是做什么的吗?