循环到Javascript对象并显示在表中

循环到Javascript对象并显示在表中,javascript,html,loops,html-table,Javascript,Html,Loops,Html Table,我正在使用JavaScript JSON对象。我不确定这是编写JSON对象的正确方法:- var address={ details:{ "martin":[{"full_name":"James Martin"},{"address":"Florida"},{"phone":"897657834"}], "luthar":[{"full_name":"Luther king"},{"address":"Boston"},{"phone":"9856568

我正在使用JavaScript JSON对象。我不确定这是编写JSON对象的正确方法:-

var address={
    details:{
        "martin":[{"full_name":"James Martin"},{"address":"Florida"},{"phone":"897657834"}],
        "luthar":[{"full_name":"Luther king"},{"address":"Boston"},{"phone":"9856568789"}],
        "jonson":[{"full_name":"Jonson vierra"},{"address":"New york"},{"phone":"98654567887"}]
    }
}
现在,我想在一个表中显示每个人的每个元素。我可以通过以下方式手动完成此操作:

<table border=1>
<tr>
<td><script>document.write(address.details.martin[0].full_name)</script></td>
<td><script>document.write(address.details.martin[1].address)</script></td>
<td><script>document.write(address.details.martin[2].phone)</script></td>
</tr>
</table>

document.write(address.details.martin[0].全名)
document.write(address.details.martin[1].地址)
document.write(address.details.martin[2].电话)
对所有3个人都是这样,但我想通过使用循环来获取每个人的全部细节。 如何通过使用循环轻松完成此操作

for (var personName in address.details) {
  if (address.details.hasOwnProperty(personName)) {
    address.details[personName]
    //  [{"full_name":"James Martin"},{"address":"Florida"},{"phone":"897657834"}]
    // you could now loop through the personName's array
  }
}

您完全可以控制数据结构吗?这似乎有点复杂?

我会按照以下思路做一些事情:

for (var i in address.details)
{
    document.write('<tr><td>' + address.details[i][0]['full_name'] + '</td><td>' + address.details[i][1]['address'] + '</td><td>' + address.details[i][2]['phone'] + '</td></tr>');
}
for(地址中的变量i.details)
{
文件.书写(''+地址.详细信息[i][0]['全名']+''+地址.详细信息[i][1]['地址']+''+地址.详细信息[i][2]['电话']+'');
}
要继续执行此代码,应输出一个包含所需数据的表:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title>An XHTML 1.0 Strict standard template</title>
    <meta http-equiv="content-type" content="text/html;charset=utf-8" />
</head>

<body>
    <script>
    var address={
        details:{
        "martin":[{"full_name":"James Martin"},{"address":"Florida"},{"phone":"897657834"}],
        "luthar":[{"full_name":"Luther king"},{"address":"Boston"},{"phone":"9856568789"}],
        "jonson":[{"full_name":"Jonson vierra"},{"address":"New york"},{"phone":"98654567887"}]
        }
    }
    </script>
    <table border=1>
    <script>
        for (var i in address.details)
        {
            document.write('<tr><td>' + address.details[i][0]['full_name'] + '</td><td>' + address.details[i][1]['address'] + '</td><td>' + address.details[i][2]['phone'] + '</td></tr>');
        }
    </script>
    </table>
</body>

XHTML1.0严格标准模板
变量地址={
详情:{
“马丁”:[{“全名”:“詹姆斯·马丁”},{“地址”:“佛罗里达”},{“电话”:“897657834”}],
“路德”:[{“全名”:“路德·金”},{“地址”:“波士顿”},{“电话”:“98568789”}],
“jonson”:[{“全名”:“jonson vierra”},{“地址”:“纽约”},{“电话”:“98654567887”}]
}
}
用于(地址中的var i.详细信息)
{
文件.书写(''+地址.详细信息[i][0]['全名']+''+地址.详细信息[i][1]['地址']+''+地址.详细信息[i][2]['电话']+'');
}

您可能会考虑使用像这样的绑定库进行类似的操作。实际上,我现在不想使用任何类型的库。因为我是javascirpt的新手,所以我需要从根目录中了解。:)这很公平,但使用库和学习JavaScript并不是相互排斥的。也不要养成这样内联JavaScript的坏习惯。最后,您拥有的实际上不是有效的JSON,因为
详细信息
没有包含在引号中,但不清楚为什么您想要JSON而不仅仅是一个对象文本。JSON通常很容易使用。它可以在数组中创建数组,在数组中创建数组。所以修饰和调用很容易。显然不是那么容易,因为JSON是无效的,加上对象文本也是如此。它实际上几乎完全相同,只是不需要将属性名括在引号中。我相信
address.details[i]
是一个数组,非常糟糕,我现在已经编辑过了。应该行。不过我相信罗德里戈对你的情况有更好的答案。我也不明白为什么要把脚本标记放在表格单元格中,这是unecessary@AlvinC这真是一个又好又短的答案。美好的但如果我想进入整张桌子。我的意思是包括
标签。这不是写作。注意:我在循环外编写了
标记。@slash-bang我编辑了答案,以向您显示所需的确切脚本。不过,如果可能的话,我会建议更改JSON。实际上,我不希望一个人有完整的数据(包括“括号”或“`)。我只需要一个表中的数据,比如martins full_name`James martin。