我正在努力使用JSON数据,在这里,我首先获取了密钥,因为密钥可能是随机的。之后我想在数组中迭代Key。
<script>
var text = '{"name":["John Johnson", "Cool", "Bay", "Life"],"street":["yyy", "xxx", " 1x"],"phone":["5xx", "12xxx7"]}';
var obj = JSON.parse(text);
var key = Object.keys(obj);
document.write("Keys :" +key);
我从上面的代码中获得了密钥,现在我想在密钥的基础上迭代这些值,为此我编写了下面的代码,但它没有按预期工作。
for(i in key){
document.write("<br>Key:"+key[i]);
var key1 = key[i];
//document.write(obj.key1);
for(j in key1){
document.write("-->"+key1[j]);
}
}
我不确定如何做到这一点。请帮助。
答案 0 :(得分:0)
在你的for循环中,用in替换,这会给你一个字符串的密钥名称。
然后,您可以obj[key]
获取值:
var obj = JSON.parse(text);
var keys = Object.keys(obj);
for(key of keys)
{
var val = obj[key];
}
答案 1 :(得分:0)
我相信你几乎就在那里。
您需要做的是迭代原始对象(而不是键数组)。要做到这一点,而不是
var key1 = key[i];
使用
var key1 = obj[key[i]];
答案 2 :(得分:0)
试试这个:
var text = '{"name":["John Johnson", "Cool", "Bay", "Life"],"street":["yyy", "xxx", " 1x"],"phone":["5xx", "12xxx7"]}';
var obj = JSON.parse(text);
var key = Object.keys(obj);
for(var i in key){
console.log(key[i]+ ":");
var key1 = obj[key[i]];
for(j in key1){
console.log(" "+key1[j]);
}
}
&#13;