JSON.stringify没有序列化对象

JSON.stringify is not serialiizing the object

本文关键字:序列化 对象 stringify JSON      更新时间:2023-09-26

我试图通过传递序列化的json对象并将其分配给ajax调用的数据属性来进行ajax调用。但是,在将序列化对象分配给数据属性时,有些事情是不合适的。控件转到jquery-2.0.3.min.js文件

<script type="text/javascript">
    function AddEmployee() 
    {

        var Product = new Object();
        Product.Name = "kRISH";
        Product.Price = "23";
        Product.Category = "AS";
        $.ajax
        ({
            url: 'http://localhost:62310/api/products',
            type: 'POST',
            data: JSON.stringify(Product),
            contentType: "application/json;charset=utf-8",
            success: function (data){ WriteResponse(data);},
            error: function (x, y, z){ alert(x + ''n' + y + ''n' + z);}
        });
    }
</script>

如果要序列化属性为Product的对象,则需要

data: JSON.stringify( {Product : Product} )

或者你只是想序列化你的产品,那么你需要

data: JSON.stringify(Product)

顺便说一句,你的对象初始化可以重写为:

var Product = {
  Name : "kRISH",
  Price : "23",
  Category : "AS"
};

Product : Product不是对象。

你应该用一个实际的对象来代替它:

$.ajax
    ({
        url: 'http://localhost:62310/api/products',
        type: 'POST',
        data: JSON.stringify({Product : Product}),
        contentType: "application/json;charset=utf-8",
        success: function (data){ WriteResponse(data);},
        error: function (x, y, z){ alert(x + ''n' + y + ''n' + z);}
    });

http://jsfiddle.net/floo51/x52GX/

只需进行

var json_text = JSON.stringify(Product, null, 2);
 $.ajax
        ({
            url: 'http://localhost:62310/api/products',
            type: 'POST',
            data: json_text ,
            contentType: "application/json;charset=utf-8",
            success: function (data){ WriteResponse(data);},
            error: function (x, y, z){ alert(x + ''n' + y + ''n' + z);}
        });