如何在JavaScript或Ecmascript中迭代Json对象?[副本]

s1ag04yj  于 2023-05-05  发布在  Java
关注(0)|答案(2)|浏览(138)

此问题已在此处有答案

How can I access and process nested objects, arrays, or JSON?(31答案)
16小时前关闭
我有这个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年

i7uq4tfw

i7uq4tfw1#

例如,你可以使用for...in循环来迭代键,然后你可以检查当前键是否匹配empNamee。如果是,你可以在方括号中打印数字:

var dataName = Data[0].empName;
for (var key in Response.Employee) {
  if (key === dataName) {
    console.log(Response.Employee[key][0]);
  }
nlejzf6q

nlejzf6q2#

Object.keys(res.Employee).forEach(function (name) {
    if (Data1[0].empName == name) {
        console.log(res.Employee[name][0]);
    }
});

相关问题