如何使用JQuery的get函数发布动态JSON字符串?

时间:2012-03-02 20:36:34

标签: javascript jquery ajax json

我想要实现的是将json字符串作为Get方法传递给带有jquery的服务器。发回的内容是html类型。我使用函数.get(“url”,myJson,callback)来完成此任务。

要制作我的json字符串,我会验证一些复选框和文本框以获取其内容,并在需要时在json字符串上添加其id / value。

我使用了一个数组,我添加了我的值:

var array = new Array();
array.push("att_id:"+value);

然后用它来制作json:

var jsonString = "{" + array.join(",") + "}";

但是当我向服务器发出这样的请求时:

$.get(
    "localhost/something",
    $jsonString,
    function(data){
        $("#something").html(data);
});

它不起作用,因为它将jsonString作为arraykey和null值传递。 所以我正在寻找一种方法来实现这一目标。

4 个答案:

答案 0 :(得分:0)

试试这个(快速修复):

$.get(
    "localhost/something",
    {theData:array},
    function(data){
        $("#something").html(data);
    }
);

或者,更多的是jQuery的精神(因为你真的想传递一个Javascript键值映射(即一个对象)而不是一个pre-JSON-ified字符串):

var $dataObj = {};
$dataObj["att_id"]=value;

// and then
$.get(
    "localhost/something",
    $dataObj,
    function(data){
        $("#something").html(data);
    }
);

答案 1 :(得分:0)

您只需使用对象文字构建数据:

var data = {foo: "bar", att_id: value};
$.get(
    "localhost/something",
    data,
    function(data){
        $("#something").html(data);
});

答案 2 :(得分:0)

创建json字符串,如下所示。

var data = {};
//Add as many key/values as you want
data["att_id"] = value;


$.get(
    "localhost/something",
    data,
    function(data){
        $("#something").html(data);
    }
);

答案 3 :(得分:0)

我建议将JSON2 polyfill用于JSON.stringify,并删除数组。

var data= {};
data["att_id"]=value;

$.get(
    "localhost/something",
    JSON.stringify(data),
    function(result){
        $("#something").html(result);
    }
);