Javascript 需要解析Json对象并将其附加到表中 函数myFunction(){ var abc、obj、i、j; abc={ “汽车”:[ {“model”:“Sentra”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈”]}, {“model”:“Maxima”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈”]}, {“模型”:“天际线”,“门”:2,“lol”:[“嗨”,“你好”,“哈哈哈”]} ] } var obj=JSON.parse(abc); var theader=“TitleAuthoryear”; document.getElementById(“dtable”).appendChild(theader); var x; 对于(i=0;i
嵌套的json数据需要显示在HTML表中。单击按钮时,显示json的表必须出现。我们可以使用JavaScript或JQuery来实现这一点。在我的示例中,我使用的是JavaScript。我不知道哪里出了问题。您不需要解析abc,因为它已经是一个对象,但您需要解析每个car对象Javascript 需要解析Json对象并将其附加到表中 函数myFunction(){ var abc、obj、i、j; abc={ “汽车”:[ {“model”:“Sentra”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈”]}, {“model”:“Maxima”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈”]}, {“模型”:“天际线”,“门”:2,“lol”:[“嗨”,“你好”,“哈哈哈”]} ] } var obj=JSON.parse(abc); var theader=“TitleAuthoryear”; document.getElementById(“dtable”).appendChild(theader); var x; 对于(i=0;i,javascript,html,Javascript,Html,嵌套的json数据需要显示在HTML表中。单击按钮时,显示json的表必须出现。我们可以使用JavaScript或JQuery来实现这一点。在我的示例中,我使用的是JavaScript。我不知道哪里出了问题。您不需要解析abc,因为它已经是一个对象,但您需要解析每个car对象 <!DOCTYPE html> <html> <head> <script type="text/javascript"> function myFu
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript">
function myFunction() {
var abc, obj, i, j;
abc = {
"cars": [
'{"model":"Sentra", "doors":4, "lol":["hi","hello","hahahaha"]}',
'{"model":"Maxima", "doors":4,"lol":["hi","hello","hahahaha"]}',
'{"model":"Skyline", "doors":2,"lol":["hi","hello","hahahaha"]}'
]
}
var obj = JSON.parse(abc);
var theader = "<tr><th>Title</th><th>Author</th><th>year</th></tr>";
document.getElementById("dtable").appendChild(theader);
var x;
for (i = 0; i < abc.cars.length; i++) {
x += "<tr><td>" + obj.cars[i].model + "</td><td>" + obj.cars[i].doors + "</td><td>" + obj.cars[i].lol[0] + "</td></tr>";
document.getElementById("dtable").appendChild(x);
}
};
</script>
</head>
<body>
<div class="container" ,id="dsjson">
<button type="button" onclick="myFunction()">display json</button>
<br><br>
<table id="dtable"></table>
</div>
</body>
</html>
函数myFunction(){
var abc、obj、i、j;
abc=
{“汽车”:[
{“model”:“Sentra”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈”]},
{“model”:“Maxima”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈”]},
{“模型”:“天际线”,“门”:2,“lol”:[“嗨”,“你好”,“哈哈哈”]}
]}
var obj=abc;
var theader=“TitleAuthoryear”;
document.getElementById(“dtable”).appendChild(theader);
var x;
对于(i=0;i
```
使用类似的JSON验证工具。
现在不需要
abc
var
<html>
<head>
<script type="text/javascript">
function myFunction(){
var abc,obj,i,j;
abc =
{"cars": [
' {"model":"Sentra", "doors":4, "lol":["hi","hello","hahahaha"]}',
'{"model":"Maxima", "doors":4,"lol":["hi","hello","hahahaha"]}',
'{"model":"Skyline", "doors":2,"lol":["hi","hello","hahahaha"]}'
]}
var obj = abc;
var theader = "<tr><th>Title</th><th>Author</th><th>year</th></tr>";
document.getElementById("dtable").appendChild(theader);
var x;
for (i=0; i < abc.cars.length; i++) {
abc.cars[i]=JSON.parse(abc.cars[i]);
x += "<tr><td>" + obj.cars[i].model + "</td><td>" + obj.cars[i].doors+ "</td><td>" + obj.cars[i].lol[0]+ "</td></tr>" ;
document.getElementById("dtable").appendChild(x);
}
};
</script>
</head>
<body>
<div class ="container" ,id = "dsjson">
<button type="button" onclick="myFunction()">display json</button>
<br><br>
<table id="dtable"></table>
</div>
</body>
</html>```
代码中几乎没有问题 首先,
appendChild()
接受dom节点作为参数,但您提供的是htmlString,请尝试使用insertAdjacentHTML()
或innerHTML
然后使用前面的值修改循环中的DOM,这将复制结果
您可以尝试以下方法:
函数myFunction(){
var-abc,i,j;
var abc={
“汽车”:[
{“model”:“Sentra”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈]},
{“model”:“Maxima”,“doors”:4,“lol”:[“hi”,“hello”,“hahahaha”]},
{“模型”:“天际线”,“门”:2,“lol”:[“嗨”,“你好”,“哈哈哈”]}
]
};
var theader=“TitleAuthoryear”;
document.getElementById(“dtable”).innerHTML=theader;
var x=“”;
对于(i=0;i
显示json
我认为您对appendChild
和innerHTML
有点困惑
如果要使用appendChild
,则需要提供一个HTML元素,但是,如果只想添加HTML文本,请使用innerHTML
abc
已经是一个JSON对象,因此您不需要再次解析它,但是,您需要解析内部的lol
属性
下面是这些更改和一些小的改进,使用对象分解来清理一些东西
函数myFunction(){
var abc、obj、i、j;
abc={
“汽车”:[
{“model”:“Sentra”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈”]},
{“model”:“Maxima”,“doors”:4,“lol”:[“嗨”,“你好”,“哈哈哈”]},
{“模型”:“天际线”,“门”:2,“lol”:[“嗨”,“你好”,“哈哈哈”]}
]
}
var theader=“TitleAuthoryear”;
document.getElementById(“dtable”).innerHTML=(theader);
var x=“”;
对于(i=0;i
您的数据已经是一个对象。不需要解析它。javascript解释器已经为您解析了它
如果要使用html字符串添加内容,可以在Vanilla.js中使用
constdtable=document.getElementById(“dtable”);
常量对象={
“汽车”:[{
“模型”:“Sentra”,
“门”:4,
“lol”:[
“嗨”,
“你好”,
“哈哈哈”
]
},
{
“模型”:“最大值”,
“门”:4,
“lol”:[
“嗨”,
“你好”,
“哈哈哈”
]
},
{
“模型”:“天际线”,
"门":二,,
“lol”:[
“嗨”,
“你好”,
“哈哈哈”
]
}
]
};
常量车=对象车;
const theader=“TitleAuthoryear”;
函数myFunction(){
for(设i=0;i
显示json
abc.cars
是示例中的字符串数组。我很确定你应该从一个对象数组开始,我想用三个car类型的json对象。你能帮我纠正一下吗@stackslave去掉{“model”:“Sentra”,“doors”:4,“lol”:[“hi”,“hello”,“hahaahahahaha”]}
等的单引号,所以它只是{“model”:“Sentra”,“doors”:4,“lol”:[“hi”,“hello”,“haahahahaha”]}
。当然,不要JSON.parse
。你创建了abc的abc
var obj = {
cars: [
{
model: "Sentra",
doors: 4,
lol: ["hi", "hello", "hahahaha"]
},
{
model: "Maxima",
doors: 4,
lol: ["hi", "hello", "hahahaha"]
},
{
model: "Skyline",
doors: 2,
lol: ["hi", "hello", "hahahaha"]
}
]
};