在JQuery中序列化我的JSON输出问题

时间:2010-03-15 11:58:41

标签: jquery zend-framework json

尝试使用AJAX调用验证我的表单

$("#button").click(function() {
    $.ajax({                    
        type: "POST",
        url: "<?php echo $this->baseUrl() ?>/expensetypes/async",
        data: 'fs=' + JSON.stringify($('#myform').serialize(true)),                 
        contentType: "application/json; charset=utf-8",
        dataType: "json"
        });
    });

在我的控制器上,我的代码如下

//Map the form from the client-side call
        $myFormData = Zend_Json::decode($this->getRequest()->getParam("fs") 
                            ,Zend_Json::TYPE_ARRAY);

        $form = new Form_Expensetypes();
        $form->isValid($myFormData);

然而,从firebug我的输出如下

fs="id=&expense_types_code=AAA&expense_types_desc=CCCC&expense_types_linkemail=XXXX&expense_types_budgetamount=22222&expense_types_budgetperiod=22222"

我的期望与

类似
fs{"expense_types_code":"AAA","expense_types_desc":"CCCC","expense_types_linkemail":"XXXX","expense_types_budgetamount":"22222"}

如何实现这种类型的序列化?

1 个答案:

答案 0 :(得分:0)

jQuery serialize函数始终返回URL编码的字符串。之后使用serializeArray进行一些数组修改。