Bre*_*uck 5 jquery json getjson
我没有问题让Json工作并解析json返回.我只是想知道如何构建一个动态的"无论数据是什么"并将其粘贴到[data]中以从那里传递我的参数而不是手动将它们附加到url.
来自jquery网站的例子:
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});
Run Code Online (Sandbox Code Playgroud)
我以为我可以构建一个字符串(无论如何都没有意义)并将其放在{}内,但我显然不明白那一部分.
name:不是一个字符串,你不能在该部分中放置一个变量,所以我如何动态地将项目放入[data]中.
更新:谢谢你的答案.如果我以后没有找到有效值,或者我需要销毁它并重新创建它,我是否能够从对象中删除参数名称?我使用一些选择框来选择东西,我可能没有选择的东西,所以我不想传递参数名称/值.
Poi*_*nty 13
您可以像这样构建对象:
var someVar = someRandomString();
$.getJSON('test.js', (function() {
var theData = {};
theData[someVar] = someRandomValue();
return theData;
})(), function(jsonStuffFromServer) {
alert("JSON Data: " + jsonStuffFromServer.users[3].name);
});
Run Code Online (Sandbox Code Playgroud)
当然,您不必在匿名函数中构建"数据"对象; 你可以事先单独做:
var theData = {};
theData[someVariableWithANameInIt] = someRandomValue();
$.getJSON(url, theData, function(jsonStuff) { ... });
Run Code Online (Sandbox Code Playgroud)
以下是如何从<select>页面上的一组元素构建此类对象:
var theData = {};
$('#myForm select').filter(function() { return $(this).val() != ''; })
.each(function() {
theData[this.name] = $(this).val();
});
$.getJSON(url, theData, function(jsonStuff) { ... });
Run Code Online (Sandbox Code Playgroud)
创建一个对象,然后您可以在其中放置您喜欢的任何属性:
var data = new Object();
Run Code Online (Sandbox Code Playgroud)
要么:
var data = {};
Run Code Online (Sandbox Code Playgroud)
您可以使用属性语法:
data.name = 'John';
data.time = '2pm';
Run Code Online (Sandbox Code Playgroud)
或关联数组语法(如果参数名称是关键字,则有用):
data['name'] = 'John';
data['time'] = '2pm';
Run Code Online (Sandbox Code Playgroud)
您当然可以为值使用变量,甚至可以使用变量来指定参数名称:
var param = 'name';
var value = 'John';
data[param] = value;
Run Code Online (Sandbox Code Playgroud)
然后你只需在调用中使用数据变量:
$.getJSON("test.js", data, function(json){
alert("JSON Data: " + json.users[3].name);
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
12914 次 |
| 最近记录: |