javascript - 为什么我得到的是 [object Object] 而不是 JSON?

标签 javascript jquery json

这是脚本:

$("#some_button").click(function() {

    var changed = [];

    $( 'input[id$="_1"]' ).each(function() {

        var new_id = this.id.replace( '_1', '_0' );

        if ( $(this).val() !== $( 'input#' + new_id ).val() ) {

            changed.push({id:new_id, new_val:$('input#' + new_id).val(), old_val:$(this).val()});

        }

    });

    alert(changed);

});

它给了我 [object Object],[object Object]

我做错了什么?

最佳答案

因为你没有 JSON。您有一个数组:[]。 JSON 是 javascript 对象的字符串表示。

您可以使用 JSON.stringify 方法从现有对象生成 JSON 字符串:

alert(JSON.stringify(changed));

JSON.stringify 方法在现代浏览器中是原生的,但如果您需要支持旧版浏览器,则需要包含 json2.js到你的页面。此脚本检查浏览器是否原生支持 JSON.stringify 并使用它,如果不支持,则提供示例实现。

关于javascript - 为什么我得到的是 [object Object] 而不是 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6691015/

相关文章:

javascript - CodeIgniter 在菜单上添加一个子文件夹作为链接

ios - Node.js 从 iOS URLSession 主体解析 JSON

javascript - 防止 jquery 和/或 x-editable 将字符串解析为对象

javascript - Jquery在数字中添加逗号

javascript - 旧版本的 javascript 是否将 ("-1"< 0) 评估为 false?

javascript - 如何避免多个 html 文件中的重复信息?

javascript - 带有异步选项的 jQuery 对话框?

javascript - 如何将可点击的 div 嵌入到另一个可点击的 div 中

json - 使用CloudFormation在CloudFront中添加SSL证书时出现错误(需要指定)

JavaScript 对象具有具有特定正则表达式模式的键