在 jQuery 中将 JSON 数据传递给 .getJSON?
Posted
技术标签:
【中文标题】在 jQuery 中将 JSON 数据传递给 .getJSON?【英文标题】:Passing JSON data to .getJSON in jQuery? 【发布时间】:2012-01-04 03:43:33 【问题描述】:我正在尝试将 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 对象来简化请求吗?如有任何帮助或建议,我将不胜感激。
【问题讨论】:
试试$.param(data);
它输出"SomeID=18&Utc=null&Flags=324"
【参考方案1】:
我尝试对 json 进行编码,它成功了。
不确定它的效率或实用性,分享它只是为了解决上述问题。
$.getJSON("https://somewhere.com/AllGet?data="+encodeURI(JSON.stringify(data)), function (result)
alert(result);
);
【讨论】:
【参考方案2】:为什么需要回调? (等等,jsonp)我会先尝试以下方法:
$.getJSON("https://somewhere.com/AllGet?callback=?", data, function(result)
alert(result);
);
在萤火虫的某个地方,看看它是否返回你所期望的。我不确定字符串作为数据的作用,但只是给一个对象就可以了。
【讨论】:
【参考方案3】:你不需要JSON.stringfy
,只需要传递JSON对象,jQuery会用它构造你的URL参数
$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result)
alert(result);
);
【讨论】:
【参考方案4】:$.getJSON("https://somewhere.com/AllGet?callback=?", SomeID:"18",Utc:null,Flags:"324", function (result)
alert(result);
);
或
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);
);
【讨论】:
【参考方案5】:根据网站,这是有效的:
$.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/
【讨论】:
【参考方案6】:当您向 jQuery GET 请求提供数据时,它需要一个 对象,而不是 JSON 字符串,用于构造查询字符串参数。尝试将您的原始代码更改为:
$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result)
alert(result);
);
【讨论】:
【参考方案7】:不要使用 JSON.stringfy,直接传递数据。
$.getJSON("https://somewhere.com/AllGet?callback=?", data, function (result)
alert(result);
);
【讨论】:
以上是关于在 jQuery 中将 JSON 数据传递给 .getJSON?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Swift(Cocoa 应用程序)中将数据传递给以前的 ViewController
Android - 在 onCreateViewHolder(..) 中将数据传递给 ViewHolder 构造函数