gpt4 book ai didi

javascript - JSON 和 JavaScript 语法

转载 作者:行者123 更新时间:2023-11-28 16:26:50 24 4
gpt4 key购买 nike

我正在尝试打印 JSON 对象属性列表。我还尝试打印出单个 ob 对象的属性。控制台的打印输出表明我正在打开文件并正常接收两个对象和子对象。但是,我在尝试循环对象并打印出每个对象的属性时犯了一个错误。

...
<script type="text/javascript">
var dta1;
$(document).ready(function() {
$.ajax({
type : "GET",
url : "data/data5.json",
success : function test(data) {
dta1 = data.object1;
dta2 = data.object2;

console.log("object1", dta1);
console.log("object2", dta2);
}
});
});
</script>

</head>
<body>
<script type="text/javascript">
for(i in dta1){
document.write(dta1[i].x);
}
document.write(dta1["object11"].x);
</script>
</body>

这是 json 文件。

{
"object1": {
"object11": {"x": "10", "y": "20", "z": "30"},
"object12": {"x": "40", "y": "50", "z": "60"},
"object13": {"x": "70", "y": "80", "z": "90"}
},
"object2": {
"object21": {"x": "100", "y": "200", "z": "300"},
"object22": {"x": "400", "y": "500", "z": "600"},
"object23": {"x": "700", "y": "800", "z": "900"}
}
}

最佳答案

由于您使用了 jQuery“文档就绪”处理程序,您的第二个脚本 block 将在头部的脚本 block 之前运行,该处理程序仅在文档完全加载后运行。

此外,您不能依赖异步请求 (AJAX) 在下一个代码块运行之前完成。任何使用通过 AJAX 检索的数据的内容都应该在“成功”回调中调用。

您可能应该做的是在 HTML 中创建一个容器元素,例如

<body>
<ul id="data-container"></ul>
</body>

并将值附加到 AJAX 成功回调中,例如

success : function test(data) {
var dta1 = data.object1;
var dta2 = data.object2;

var container = $("#data-container");

for (var o in dta1) {
if (dta1.hasOwnProperty(o)) {
container.append($("<li>").text(dta1[o].x));
}
}
}

关于javascript - JSON 和 JavaScript 语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7734069/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com