我需要有关JSON字符串操作的一些帮助。我要做的是将JSON字符串转换为JavaScript对象,并使HTML文件如下所示。我要做的第一件事是使用var obj = JSON.parse(jsonstring); 将JSON字符串放入JavaScript对象。之后,我希望使用for循环遍历JavaScript对象中的所有属性,然后使用该值创建表。但是,我无法通过使用.name来获取表决的名称,名称,种族和性别等,而不是其值。回路控制也发生故障。.length总是返回不确定的错误。感谢您提供的任何帮助。期待您的回音。
哪个角色最好?
角色:星际大战角色
记录编号:2
感官:在此处输入图片描述
| 投票| 名称| 种族| 性别|
| 34411224 | Obi-Wan Kenobi | Human | Male |
| 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" ]
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句