我有以下编码的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 亚当
答案 0 :(得分:1)
使用for in
循环:
{for (key in data) {
for (innerKey in data[key]) {
<li>{data[key][innerKey]}</li>
}
}}
我们需要在key
和innerKey
周围使用括号的原因是因为需要首先计算这些属性。
答案 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>
)}