我应该使用什么来序列化并传递我的json数据?

时间:2012-08-02 14:58:00

标签: javascript asp.net-mvc json html5 jquery

我有这段代码来序列化我的JSON数据。

    <div>
            <!-- cut out HTML for brevity -->
            <div class="divwidth">
                <input type="button" onclick="javascript:postBackPart($(this).parent().parent().attr('id'));" value="Test Me" />
            </div>
    </div>

<script type="text/javascript">
    function postBackPart(div_id) {
        $.ajax({
            url: '/Parts/Edit2',
            type: 'POST',
            data: $('#' + div_id).serialize(),
            success: function (result) {
            }
        });

        return false;
    }
</script>

现在我看到其他帖子和网站都使用toJSON,stringfy或serialize。我应该使用哪一个?我应该使用哪种场景?

注意:我正在使用ASP.NET MVC 3,此代码来自MVC 3应用程序。

1 个答案:

答案 0 :(得分:1)

.serialize()不会创建json序列化,而是创建url参数序列化。见http://api.jquery.com/serialize/

如果使用toJSON,则必须在对象上定义它。因此,原生JavaScript对象将支持此功能。但你自己不一定。

我认为最好的方法是使用JSON.stringify(value[, replacer [, space]])。它在可用的任何地方调用toJSON,让对象决定其json表示的外观。

它还允许通过指定要序列化的属性和可选的替换函数来实现更高的自定义。