将JSON字符串转换为JavaScript对象,然后创建一个HTML表
convert the JSON string to a JavaScript object then create a HTML table
我需要一些JSON字符串操作方面的帮助。我想做的是将JSON字符串转换为JavaScript对象,并使HTML文件如下所示。我做的第一件事是使用var obj=JSON.parse(jsonstring)将JSON字符串放入JavaScript对象。之后,我希望使用for循环遍历JavaScript对象中的所有属性,然后使用值来创建表。但是,我无法通过使用.name获取vote、name、race和gender//strong>等的名称,而不是其值。回路控制也出现故障.length总是返回一些未定义的错误。如果你能提供任何帮助,我将不胜感激。期待您的来信。
哪个角色最好
角色:星球大战角色
记录编号:2
感官:在此处输入图像描述
|投票|姓名|种族|性别|
|34411224|欧比-万·克诺比|人类|男性|
|34458794|阿纳金·天行者|人类|男性|
在此处输入代码
var obj = JSON.parse ( jsonstring );
var labelsName = obj.labels[0];
var sensesName = obj.senses[0];
createTable(obj)
function createTable(obj) {
var table = document.createElement("table");
table.setAttribute("width","100%");
table.setAttribute("border","1");
table.borderColor="#FFFFFF";
table.cellSpacing="0";
table.cellpadding="0";
table.borderColorDark="#FFFFFF";
table.borderColorLight="#AAAAAA";
parentTd = document.getElementById("parentTd");
//console.log(" parentTd=", parentTd);
parentTd.appendChild(table);
var header = table.createTHead();
header.bgColor="#EEEEEE";
var headerrow = header.insertRow(0);
headerrow.height="27";
var labels = var.getElementsByTagName("labels");
var senses = var.getElementsByTagName("senses");
for( var i = 0; i < obj.length; i++ ) {
var rowObj = obj[i];
for( var key in rowObj){
console.log(" key =: ", key);
console.log(" rowObj[key] =: ", rowObj[key]);
}
}
<html>
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<body>
<h1>Which Character Is The Best?</h1>
<div valign="top" id="parentTd"> </div>
<script>
var jsonstring = ' { "labels": [ ' +
'{ "Characters": "StarWarsCharacters", "Record No.": 2, '+
' "Senses": [ { "vote": 34411224, "name": "Obi-Wan Kenobi", "race": "Human", "gender": "Male"}, ' +
' { "vote": 34458794, "name": "Anakin Skywalker", "race": "Human", "gender": "Male"} ] } ] }'
</script>
</body>
</html>
以下是您可以做的一个示例:
for (var i = 0; i < json.labels.length; i++){
for (var j = 0; j < json.labels[i].Senses.length; j++){
document.getElementById('table').innerHTML +=
'<tr><td>' + json.labels[i].Senses[j].gender +
'</td><td>' + json.labels[i].Senses[j].name +
'</td><td>' + json.labels[i].Senses[j].race +
'</td><td>'+ json.labels[i].Senses[j].vote +
'</td></tr>';
}
}
也许你可以尝试使用动态添加标题
console.log(Object.keys(json.labels[0].Senses[0]));
返回一个数组:
[ "vote", "name", "race", "gender" ]
Fiddle
相关文章:
- 使用javascript将动态表从一个html页面打印到另一个html页
- 如何将值传递到上一个html页面
- 一个html元素的克隆次数太多
- 将html元素插入到文本字符串中,以匹配另一个html字符串
- 如何在另一个html文件的框架中包含图像
- 按下一个HTML按钮,该按钮使用一个功能在同一个新窗口中打开URL
- 我可以共享一个HTML播放器吗
- 如何在一个html页面上使用js进行2次乘法运算
- 访问下一个html页面的静态4位密码
- 如何在JavaScript中将值从一个html页面传递到另一个页面
- 重定向到Angular JS中的另一个HTML页面
- 使用JavaScript打开另一个html页面时传递变量
- 一个html/javascript'小工具'知道用户何时单击了小部件外的任意位置
- 当源文件夹中有多个jade文件时,gulp-ejade只构建一个HTML文件
- JSON编码一个HTML列表——所有子项都显示在所有父项上
- 创建一个HTML文件,该文件使用DOM在用户每次单击按钮时交换两段内容
- 如何在另一个 html 标签内选择 web 元素硒 Web 驱动程序与 html 源
- 创建一个html表单并使用javascript访问中的python脚本
- 构建一个HTML小部件来嵌入付费内容-如何确保与后端的通信安全
- 在我的php模型中用javascript更改一个html类