初学者JavaScript,JSON索引问题:为什么我的(for…in)脚本失败了?
我不是一个经验丰富的Javascript程序员,甚至不太熟悉JSON。我的方法可能很幼稚。欢迎提出更好办法的建议 这是我的密码初学者JavaScript,JSON索引问题:为什么我的(for…in)脚本失败了?,javascript,json,for-loop,indexing,Javascript,Json,For Loop,Indexing,我不是一个经验丰富的Javascript程序员,甚至不太熟悉JSON。我的方法可能很幼稚。欢迎提出更好办法的建议 这是我的密码 <!DOCTYPE html> <html> <head> <script> database = { "name": "AdventureWorks2012 vs AdventureWorksModified", "children": [{ "
<!DOCTYPE html>
<html>
<head>
<script>
database = {
"name": "AdventureWorks2012 vs AdventureWorksModified",
"children": [{
"name": "Person",
"children": [{
"name": "Address",
"children": [{
"name": "AddressID",
"attributes": {
"coltype": "int",
"coldefault": null,
"colordinal": 1,
"colCharLength": null
}
}]
},{
"name": "Address",
"children": [{
"name": "AddressID",
"attributes": {
"coltype": "int",
"coldefault": null,
"colordinal": 1,
"colCharLength": null
}
}]
}]
},{
"name": "PersonDELETEmePLEASE",
"children": [{
"name": "Address",
"children": [{
"name": "AddressID",
"attributes": {
"coltype": "int",
"coldefault": null,
"colordinal": 1,
"colCharLength": null
}
}]
}]
}]
}
console.log(`name : ${database.name}`);
console.log("=SCHEMAS=");
for (var i in database.children){
console.log(`name : ${database.children[i].name}`);
console.log("children: (-TABLES-)");
for (var j in database.children){
console.log(`name : ${database.children[i].children[j].name}`);
console.log("children: (-COLUMNS-)");
for (var k in database.children[i].children[j].children){
console.log(`name : ${database.children[i].children[j].children[k].name}`);
console.log("children: (-DATA-)");
for (var l in database.children[i].children[j].children[k].attributes){
console.log(`${l} : ${database.children[i].children[j].children[k].attributes[l]}`);
}
}
}
console.log("\n\n\n");
}
</script>
</head>
<body>
</body>
</html>
数据库={
“名称”:“AdventureWorks2012 vs AdventureWorksModified”,
“儿童”:[{
“姓名”:“人”,
“儿童”:[{
“姓名”:“地址”,
“儿童”:[{
“名称”:“地址ID”,
“属性”:{
“coltype”:“int”,
“错误”:空,
“彩色第纳尔”:1,
“colCharLength”:空
}
}]
},{
“姓名”:“地址”,
“儿童”:[{
“名称”:“地址ID”,
“属性”:{
“coltype”:“int”,
“错误”:空,
“彩色第纳尔”:1,
“colCharLength”:空
}
}]
}]
},{
“姓名”:“PersonDELETEmePLEASE”,
“儿童”:[{
“姓名”:“地址”,
“儿童”:[{
“名称”:“地址ID”,
“属性”:{
“coltype”:“int”,
“错误”:空,
“彩色第纳尔”:1,
“colCharLength”:空
}
}]
}]
}]
}
log(`name:${database.name}`);
console.log(“=SCHEMAS=”);
for(database.children中的变量i){
log(`name:${database.children[i].name}`);
log(“子项:(-TABLES-”);
for(database.children中的var j){
log(`name:${database.children[i].children[j].name}`);
log(“子项:(-COLUMNS-)”;
for(数据库中的var k.children[i].children[j].children){
log(`name:${database.children[i].children[j].children[k].name}`);
console.log(“子项:(-DATA-”);
对于(数据库中的var l.children[i].children[j].children[k].attributes){
log(`${l}:${database.children[i].children[j].children[k].attributes[l]}`);
}
}
}
console.log(“\n\n\n”);
}
结构是数据库->架构->表->列+列数据
AdventureWorks2012 vs AdventureWorksModified->Person->Address->AddressID+属性
正如标题中提到的,我正在尝试遍历一些JSON数据。无论是输出到HTML还是控制台,我都会在一个奇怪的条件下遇到一个错误:每当一个模式只有一个表时。它可以有一个子项或一个数据成员,但必须有多个表
这是我得到的错误:
请帮助我理解:我的循环中是什么导致了这种情况的发生?在我开始寻找解决办法并最终将自己引入沟渠之前,我想问一下
谢谢你的帮助。你的两个循环在同一个东西上循环
for (var i in database.children) { <-- same
for (var j in database.children) <-- same
for(database.children中的vari){
for (var i in database.children) { <-- same
for (var j in database.children) <-- same
for(vari in database.children){在您的第二个for循环中(for(varj in database.children)
),我认为它应该读为for(varj in database.children[i].children)
FYI:JSON是用于数据交换的文本符号。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。您所拥有的只是一个对象。这不是JSON,而是一个JavaScript对象文本。JSON始终是一个字符串。好的,感谢您的澄清。我会记住这些。在yo中第二个for循环(for(varj在database.children中)
)我认为应该读为for(varj在database.children[i].children中)
FYI:JSON是用于数据交换的文本符号。如果您处理的是JavaScript源代码,而不是字符串,那么您就不是在处理JSON。您所拥有的只是一个对象。这不是JSON,而是一个JavaScript对象文字。JSON始终是一个字符串。好的,谢谢您的澄清。我会记住这些。哦,哇w、 我是一块浓密的燕麦饼干。非常感谢你,好先生。哦,哇,我是一块浓密的燕麦饼干。非常感谢,好先生。