У меня нет проблем, заставляя Json работать и проанализировать возврат json. Я просто задавался вопросом, как я мог создать динамическое "независимо от того, что данные", и засуньте их в [данные], чтобы передать мои параметры оттуда и не вручную добавить их к URL.
От примера веб-сайта jQuery:
$.getJSON("test.js", { name: "John", time: "2pm" }, function(json){
alert("JSON Data: " + json.users[3].name);
});
Я думал, что мог создать строку (который не имеет смысла так или иначе), и отбросьте его в {}, но я, очевидно, не понимаю ту часть.
имя: разве строка и Вы не, не может поместить переменную в ту часть, поэтому как я динамично поместил бы объекты в любой [данные].
ОБНОВЛЕНИЕ: Спасибо за ответы. Я смог бы удалить название параметра из объекта, если бы я не нашел допустимое значение позже, или я должен был бы уничтожить его и воссоздать его? Я использую некоторые избранные поля для выбора вещей, и мне нельзя было выбрать что-то, таким образом, я не хотел бы передавать то название параметра / значение.
Вы можете построить свой объект следующим образом:
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) { ... });
Вот как вы можете создать такой объект из набора
элементов на вашей странице:
var theData = {};
$('#myForm select').filter(function() { return $(this).val() != ''; })
.each(function() {
theData[this.name] = $(this).val();
});
$.getJSON(url, theData, function(jsonStuff) { ... });
Вы можете сделать это:
var myName = $("#nameField").val();
var myTime = $("#timeField").val();
$.getJSON("test.js", { 'name': myName, 'time': myTime}, function(json){
alert("JSON Data: " + json.users[3].name);
});
Это то, что вы имеете в виду, или динамические параметры, а также переменные?
Создайте объект, затем вы можете поместить в него любые свойства, которые вам нравятся:
var data = new Object();
или:
var data = {};
Вы можете использовать синтаксис свойств:
data.name = 'John';
data.time = '2pm';
или синтаксис ассоциированных массивов (что полезно, если имя параметра является ключевым словом):
data['name'] = 'John';
data['time'] = '2pm';
Конечно, вы можете использовать переменные для значений, и даже использовать переменные для указания имени параметра:
var param = 'name';
var value = 'John';
data[param] = value;
Тогда вы просто используете переменную данных в вызове:
$.getJSON("test.js", data, function(json){
alert("JSON Data: " + json.users[3].name);
});
{} - это литерал объекта javascript , поэтому name является свойством этого объекта.
Вы можете сделать что-то вроде этого:
var data = {};
data.name = $("#input").val();
$.getJSON("test.js", data, function(json){
alert("JSON Data: " + json.users[3].name);
});
Или что-то вроде этого
var data = {
name: $("#input").val(),
};
$.getJSON("test.js", data, function(json){
alert("JSON Data: " + json.users[3].name);
});