提问人:Mayo 提问时间:5/4/2023 最后编辑:Mayo 更新时间:5/4/2023 访问量:259
如何在javascript或Ecmascript中迭代Json对象?[复制]
How to iterate over Json object in javascript or Ecmascript? [duplicate]
问:
我有这个 json 响应,并且很难迭代这个 json 结构。这个想法是打印方括号内写的数字,如果它们与另一个 json 对象“Data”Json 匹配。就像在这种情况下,6099应该打印。
响应和数据
var Response = {
"Employee" : {
"John" : [ "6131" ],
"Alex" : [ "402537" ],
"Mary" : [ "6039" ],
"Java" : [ "6039" ],
"Anna" : [ "6099" ]
}
}
var Data = [
{
"empName": "Anna"
}
]
我尝试使用 forEach,但由于 Response 不是数组或集合,所以它不起作用并给出错误“Response.employee.forEach 不是函数”,并且无法理解如何迭代 json 对象。
var Data1 = JSON.parse(Data)
var res= JSON.parse(Response)
res.Employee.forEach(function(res1) {
var test = res1
if(Data1.empName== test){
console.log(test[0])
}
});
预期输出应为:6099
答:
-2赞
Klone
5/4/2023
#1
您可以使用 for...例如,在循环中循环访问键,然后,您可以检查当前键是否与 empNamee 匹配。如果是这样,您可以在方括号中打印数字:
var dataName = Data[0].empName;
for (var key in Response.Employee) {
if (key === dataName) {
console.log(Response.Employee[key][0]);
}
评论
res.Employee[Data[0].empName][0]