jquery - 使用 Jquery $getJSON 如何动态为 Url 参数后的 [data] 参数创建数据?

标签 jquery json getjson

我在让 Json 工作并解析 json 返回方面没有任何问题。我只是想知道如何构建一个动态的“无论数据是什么”并将其粘贴到 [data] 中以从那里传递我的参数,而不是手动将它们附加到 url 中。

来自 jquery 网站示例:

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

我以为我可以构建一个字符串(无论如何都没有意义)并将其放入 { } 内,但我显然不明白那部分。

name: 不是字符串,您不能在该部分中放置变量,那么我如何动态地将项目放入 [data] 中。

更新:感谢您的回答。如果我稍后没有找到有效值,我是否能够从对象中删除参数名称,或者我是否需要销毁它并重新创建它?我正在使用一些选择框来选择内容,但我可能没有选择某些内容,因此我不想传递该参数名称/值。

最佳答案

你可以像这样构建你的对象:

var someVar = someRandomString();
$.getJSON('test.js', (function() {
  var theData = {};
  theData[someVar] = someRandomValue();
  return theData;
})(), function(jsonStuffFromServer) {
  alert("JSON Data: " + jsonStuffFromServer.users[3].name);
});

当然,您不必在匿名函数中构建“数据”对象;您可以预先单独进行:

var theData = {};
theData[someVariableWithANameInIt] = someRandomValue();
$.getJSON(url, theData, function(jsonStuff) { ... });

以下是如何从一组 <select> 构建这样一个对象页面上的元素:

var theData = {};
$('#myForm select').filter(function() { return $(this).val() != ''; })
  .each(function() {
    theData[this.name] = $(this).val();
  });

$.getJSON(url, theData, function(jsonStuff) { ... });

关于jquery - 使用 Jquery $getJSON 如何动态为 Url 参数后的 [data] 参数创建数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2442085/

相关文章:

json - 如何通过 Swift 4 的 Decodable 协议(protocol)使用自定义 key ?

javascript - jQuery.getJSON() 在页面加载时不起作用。在点击事件中工作正常

jquery - JavaScript : How can i get a key value inside an array of a JSON object

javascript - Web Api 从网站中提取信息

javascript - 如何使用 AngularJS 下载并上传图像

php - 是否有使用 jQuery PHP mySQL 创建在线测验的教程

javascript - 如何从浏览器编辑 JS?

json - 如何处理 ASP.NET WebAPI 中的任意 JSON?

javascript - 如何使用 javascript 或 jquery 或 angularjs 为所选键添加 JSON 值?

javascript - Highcharts 不渲染