Foreach元素Javascript json

时间:2016-09-25 18:56:26

标签: javascript arrays json

我有一个像这样的JSON:

{
    "email.com": ["email@email.com|username\r"],
    "email.de": ["email@email.de|username"]
}

我想让它像这样打印:

  

email.com
  email.de



var data = '{"email.com":["email@email.com|username\r"],"email.de":["email@email.de|username"]}';
var obj = JSON.parse(data);
for (i = 0; i < obj.length; i++) {
  document.getElementById('types').innerHTML += '<br>' + obj[i]; // I want to get email.com , email.de
}
&#13;
<div id="types">
</div>
&#13;
&#13;
&#13;

4 个答案:

答案 0 :(得分:2)

这很好用:

<div id="types"></div>
{{ foobars|select("test") }}

答案 1 :(得分:0)

var data = [{"email.com":["email@email.com|username\r"],"email.de":["email@email.de|username"]}];
var term = (Object.keys(data[0])[0]);

var obj = JSON.parse(data);
for (i = 0; i < obj.length; i++) {
  document.getElementById('types').innerHTML += '<br>' + obj[i][term]; // I want to get email.com , email.de
}

这应该有效

Printing object's keys and values

答案 2 :(得分:0)

使用String.matchArray.join函数的简单解决方案:

var data = '{"email.com":["email@email.com|username\r"],"email.de":["email@email.de|username"]}',
    emails = data.match(/\w+\.\w+(?=\":\[)/g).join("<br>");
    
document.getElementById('types').innerHTML += '<br>' + emails;
// 'emails' variable contains "email.com<br>email.de"
<div id="types"></div>

答案 3 :(得分:0)

很快:

var obj = {
    "email.com": ["email@email.com|username\r"],
    "email.de": ["email@email.de|username"]
};
for (var prop in obj)  console.log(prop);