在jQuery中将JSON数据传递给.getJSON?

时间:2011-11-22 18:54:44

标签: javascript jquery json jsonp getjson

我正在尝试将JSON对象传递给.getJSON,但我一直收到错误的请求错误。这就是我想要的:

var data = {
    "SomeID": "18",
    "Utc": null,
    "Flags": "324"
};

$.getJSON("https://somewhere.com/AllGet?callback=?", JSON.stringify(data), function (result) {
    alert(result);
});

目前为了让它工作,我必须这样做,但我不喜欢我必须手动构建查询字符串:

$.getJSON("https://somewhere.com/AllGet?SomeID=18&Utc=&Flags=324&callback=?", null, function (result) {
        alert(result);
    });

任何人都知道如何通过传入JSON对象来简化请求?我将不胜感激任何帮助或建议。

7 个答案:

答案 0 :(得分:24)

根据网站,这是有效的:

$.getJSON("test.js", { name: "John", time: "2pm" }, function(json) {
    alert("JSON Data: " + json.users[3].name);
    });

所以试试:

var data = {
    SomeID: "18",
    Utc: null,
    Flags: "324"
};

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) {
    alert(result);
});

编辑:http://api.jquery.com/jQuery.getJSON/

答案 1 :(得分:3)

不要使用JSON.stringify,只需按原样传递数据。

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) {
    alert(result);
});

答案 2 :(得分:3)

当您向jQuery GET请求提供数据时,它需要对象而不是JSON字符串来构造查询字符串参数。尝试将原始代码更改为:

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) {
    alert(result);
});

答案 3 :(得分:1)

为什么你需要回调? (Ow等,jsonp)我先尝试以下方法:

$.getJSON("https://somewhere.com/AllGet?callback=?", data, function(result) {
  alert(result);
});
在萤火虫的某个地方看看它是否会回归你所期望的。我不确定数据的字符串是什么,但只是给对象一个正常的工作。

答案 4 :(得分:1)

您不需要执行JSON.stringfy,只需传递 JSON 对象,jQuery就会使用

构建您的网址参数
$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result) {
    alert(result);
});

答案 5 :(得分:0)

$.getJSON("https://somewhere.com/AllGet?callback=?", {SomeID:"18",Utc:null,Flags:"324"}, function (result) {
        alert(result);
    });

OR

var data = {
    "SomeID": "18",
    "Utc": null,
    "Flags": "324"
};


$.getJSON("https://somewhere.com/AllGet?callback=?",
 {
SomeID:data.SomeID,
Utc:data.Utc,
Flags:data.Flags
},
 function (result) {
            alert(result);
        });

答案 6 :(得分:0)

我尝试编码json并且它有效。

不确定它的效率或实用性,分享它只是为了解决上述问题。

 $.getJSON("https://somewhere.com/AllGet?data="+encodeURI(JSON.stringify(data)), function (result) {
        alert(result);
 });