Ответ 1
если вам нужна двойная кавычка JSON JSON.stringify( object)
var $items = $('#firstName, #lastName,#phoneNumber,#address ')
var obj = {}
$items.each(function() {
obj[this.id] = $(this).val();
})
var json= JSON.stringify( obj);
Я пытаюсь создать объект json из переменных, которые я получаю в форме.
var firstName = $('#firstName').val();
var lastName = $('#lastName').val();
var phone = $('#phoneNumber').val();
var address = $('#address').val();
Пока у меня есть код ниже, но он не будет проверять или работать. Я новичок в этом, пожалуйста, помогите! Изменение var:
var jsonObject =
{
firstName: firstName,
lastName: lastName,
phoneNumber:phoneNumber,
address:address
}
в JSONlint Я получаю эту ошибку:
Ошибка анализа в строке 1:
varjsonObject = {
^
Ожидая '{', '['
если вам нужна двойная кавычка JSON JSON.stringify( object)
var $items = $('#firstName, #lastName,#phoneNumber,#address ')
var obj = {}
$items.each(function() {
obj[this.id] = $(this).val();
})
var json= JSON.stringify( obj);
Он вызвал Object Literal
Я не уверен, что вы хотите, чтобы ваша структура была, но согласно тому, что у вас выше, где вы помещаете значения в переменные, попробуйте это.
var formObject = {"formObject": [
{"firstName": firstName, "lastName": lastName},
{"phoneNumber": phone},
{"address": address},
]}
Хотя это кажется более разумным (почему у вас есть массив в приведенном выше литерале?):
var formObject = {
firstName: firstName
...
}
Вы ссылаетесь на элемент DOM, когда делаете что-то вроде $('#lastName')
. Это элемент с атрибутом id
"lastName". Зачем это? Вы хотите ссылаться на значение, хранящееся в локальной переменной, совершенно не связанную. Попробуйте это (если присваивание formObject
находится в той же области, что и объявления переменных) -
var formObject = {
formObject: [
{
firstName:firstName, // no need to quote variable names
lastName:lastName
},
{
phoneNumber:phoneNumber,
address:address
}
]
};
Это выглядит очень странно: вы создаете объект "formObject", который содержит элемент с именем "formObject", который содержит массив объектов.
Попробуйте это, чтобы увидеть, как вы можете создать объект из строк.
var firstName = "xx";
var lastName = "xy";
var phone = "xz";
var adress = "x1";
var obj = {"firstName":firstName, "lastName":lastName, "phone":phone, "address":adress};
console.log(obj);
var formValues = {
firstName: $('#firstName').val(),
lastName: $('#lastName').val(),
phone: $('#phoneNumber').val(),
address: $('#address').val()
};
Обратите внимание, что это будет содержать значения элементов в момент, когда литерал объекта был интерпретирован, а не когда доступ к свойствам объекта. Для этого вам нужно написать геттер.