JSON&;JavaScript语法
我正在尝试打印JSON对象属性的列表。我还尝试打印出单个ob对象的属性。控制台的打印输出表明我正在打开文件并接收两个对象和子对象。但是,我在尝试循环遍历对象并打印出每个对象的属性时犯了一个错误JSON&;JavaScript语法,javascript,json,Javascript,Json,我正在尝试打印JSON对象属性的列表。我还尝试打印出单个ob对象的属性。控制台的打印输出表明我正在打开文件并接收两个对象和子对象。但是,我在尝试循环遍历对象并打印出每个对象的属性时犯了一个错误 ... <script type="text/javascript"> var dta1; $(document).ready(function() { $.ajax({ type : "GET", url : "
...
<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>
由于使用jQuery“document ready”处理程序,第二个脚本块将在头中的脚本块之前运行,该处理程序仅在文档完全加载后运行 此外,您不能依赖于在下一个代码块运行之前完成的异步请求(AJAX)。使用通过AJAX检索的数据的任何内容都应该在“success”回调中调用 您可能应该做的是在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));
}
}
}
成功:功能测试(数据){
var dta1=data.object1;
var dta2=data.object2;
var容器=$(“#数据容器”);
用于(dta1中的var o){
if(dta1.hasOwnProperty(o)){
container.append($(“”).text(dta1[o].x));
}
}
}
由于使用了jQuery“document ready”处理程序,第二个脚本块将在头中的脚本块之前运行,该处理程序仅在文档完全加载后运行
此外,您不能依赖于在下一个代码块运行之前完成的异步请求(AJAX)。使用通过AJAX检索的数据的任何内容都应该在“success”回调中调用
您可能应该做的是在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));
}
}
}
成功:功能测试(数据){
var dta1=data.object1;
var dta2=data.object2;
var容器=$(“#数据容器”);
用于(dta1中的var o){
if(dta1.hasOwnProperty(o)){
container.append($(“”).text(dta1[o].x));
}
}
}
打印dta1时,您如何知道它已加载?lc2817,console.log(“object1”,dta1);我知道,我谈到了html部分,这正是答案中所说的。您如何知道dta1在打印时已加载?lc2817,console.log(“object1”,dta1);我知道,我谈到了html部分,这正是答案中所说的。