如何使用JQuery'发布动态JSON字符串;s get函数

How to post dynamic JSON string using JQuery's get function?

本文关键字:JSON 动态 字符串 函数 get JQuery 何使用 布动态      更新时间:2023-09-26

我想要实现的是通过jquery将json字符串作为Get方法传递给服务器。发送回的内容是html类型。我使用函数.get("url",myJson,callback)来实现这一点。

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

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

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值传递。所以我正在寻找一种方法来实现这一点。

试试这个(快速修复):

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

或者,更符合jQuery的精神(因为您真的想传递Javascript键值映射(即对象),而不是预先JSON化的字符串):

var $dataObj = {};
$dataObj["att_id"]=value;
// and then
$.get(
    "localhost/something",
    $dataObj,
    function(data){
        $("#something").html(data);
    }
);

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

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

如下创建json字符串。

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

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

我建议对JSON.stringify使用JSON2 polyfill,并去掉数组。

var data= {};
data["att_id"]=value;
$.get(
    "localhost/something",
    JSON.stringify(data),
    function(result){
        $("#something").html(result);
    }
);