对象的反应对象 - 如何循环

时间:2017-09-07 02:56:15

标签: json reactjs loops dictionary foreach

我有以下编码的JSON:

const data = JSON.parse('{"first":{"aaa":"111","bbb":"2222"},"second":{"aaa":"111","bbb":"2222"}}')

解码后如下:

{
  "first": {
    "aaa": "111",
    "bbb": "2222"
  },
  "second": {
    "aaa": "111",
    "bbb": "2222"
  }
}

然后,我尝试了一些方法来循环显示这些数据,但不能按预期工作:

{Object.keys(data).map((key, value) =>
    console.log(key);
    <li>{value.aaa}</li>
)}

我可以在console.log中输出数据并看到它循环,但我看不到显示aaa或bbb值。

我在这里做错了什么?

THX 亚当

3 个答案:

答案 0 :(得分:1)

使用for in循环:

{for (key in data) {
    for (innerKey in data[key]) {
        <li>{data[key][innerKey]}</li>
    }
}}

我们需要在keyinnerKey周围使用括号的原因是因为需要首先计算这些属性。

答案 1 :(得分:1)

您可以指定一个包含值的变量。

var a = {
  "first": {
  "aaa": "111",
  "bbb": "2222"
},
"second": {
 "aaa": "111",
 "bbb": "2222"
 }
}

使用以下来获取密钥:

 var keys = Object.keys(a); 

最后迭代它:

for(var i = 0; i < keys.length; i++) { 
    var key = (keys[i]) ; 
    console.log(a[key]) 
}

答案 2 :(得分:1)

尝试使用

{Object.keys(data).map((key, index) =>
    <li key={index}>{data[key].aaa}</li>
)}