javascript - 使用 JQuery 显示 JSON

标签 javascript jquery arrays json object

我在使用 JQuery 将 JSON 结构中的嵌套对象显示到页面时遇到问题。我正在使用 JQuery 的函数 (.getJSON),但它似乎不起作用。

这是下面的 JSON 文件:

{
"widget": {
    "debug": "on",
    "window": {
        "title": "Sample Konfabulator Widget",
        "name": "main_window",
        "width": 500,
        "height": 500
            },
    "image": { 
        "src": "Images/Sun.png",
        "name": "sun1",
        "hOffset": 250,
        "vOffset": 250,
        "alignment": "center"
            },
    "text": {
        "data": "Click Here",
        "size": 36,
        "style": "bold",
        "name": "text1",
        "hOffset": 250,
        "vOffset": 100,
        "alignment": "center",
        "onMouseUp": "sun1.opacity = (sun1.opacity / 100) * 90;"
           }
        }
}   

这是使用 JQuery 访问 JSON 对象的 Javascript 文件:

$(document).ready(function () {
    $('#letter-w a').click(function (event) {
        event.preventDefault();
        $.getJSON('widget.json', function (data) {
            var html = '';
            html += data.widget.debug;
            html += data.widget.window.title;
            html += data.widget.window.name;
        });
        $('#output').html(html);
    });
});

在上面的代码中,#letter-w 是一个链接的 ID,当点击它时会显示结果,#output 是输出/结果将在 HTML 页面本身中显示的 div。此外,为了检查,我只写了 2-3 行来访问 JSON 对象。 P.S JSON 非常令人困惑,因为您必须处理所有大括号和所有内容。 任何建议或帮助将不胜感激。提前致谢!

最佳答案

这一行在错误的地方:

$('#output').html(html);

它在回调之外,因此它实际上在检索和解析 JSON 之前执行,因为 AJAX 是异步的。将其移动到回调中:

$.getJSON('widget.json', function (data) {
    var html = '';
    html += data.widget.debug;
    html += data.widget.window.title;
    html += data.widget.window.name;
    $('#output').html(html);
});

同时查看我的评论,看起来你的选择器应该更改为 #letter-w 例如:

$('#letter-w').click

关于javascript - 使用 JQuery 显示 JSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23394835/

相关文章:

javascript - knockout.js:更新绑定(bind)?

javascript - Jquery 选项卡 - 使用 onclick 函数获取内容

javascript - 文件加载到浏览器后去掉href的路径

jquery - 我希望文本框不显示高于最大值的数字

javascript - 使用javascript将复杂数组转换为简单数组

C11 标准保证将一种数组类型转换为另一种数组类型

javascript - 如果与 GeoJSON 层一起使用, map 标签的 zIndex 无效

javascript - 事件 + jshint 上的 d3.js 可能存在严格违规

jquery - 浏览到目标常见问题解答主题

c# - 将char数组转换为int数组c#