如何将JS对象作为JSON正确发送?

时间:2017-12-10 18:30:35

标签: javascript json

我有以下JS对象:

json =
            {
                "category_id": category,
                "subcategory_id": subcategory,
                "offer_type": type_offer,
                "features": []
            };

我尝试将此对象发送为JSON,如:

$.ajax({
            type: 'POST',
            url: '/add',
            data: json,
            success: function (data) {
            },
            contentType: "application/json",
            dataType: 'json'
        });

是不是?或者我需要做一些准备工作?

现在我使用这部分代码:

formObj = $("#form_add").serialize();

var json = {};

var wrapperObj = {json: json, form: formObj};

    $.ajax({
                type: 'POST',
                url: '/add',
                data: JSON.stringify(wrapperObj),
                success: function (data) {
                   // TODO
                },
                contentType: "application/json",
                dataType: 'json'
            });

这是对的吗?当我将一个对象打包在一个对象之后和stringify之后?

3 个答案:

答案 0 :(得分:1)

您需要使用JSON.stringify使其成为有效的json

$.ajax({
            type: 'POST',
            url: '/add',
            data: JSON.stringify(json),
            success: function (data) {
            },
            contentType: "application/json",
            dataType: 'json'
        });

答案 1 :(得分:1)

您也可以使用jQuery short-hand methods

$.post('/add', json).done(function() {
     // Handle response here
  });

答案 2 :(得分:0)

我认为你应该首先使用JSON.stringify:

$.ajax({
            type: 'POST',
            url: '/add',
            data: JSON.stringify(json),
            success: function (data) {
            },
            contentType: "application/json",
            dataType: 'json'
        });