我正在尝试从我在表单中获取的变量创建一个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 = {
^ 期待' {',' ['
答案 0 :(得分:20)
如果您需要使用双引号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);
答案 1 :(得分:11)
在 Object Literal
上调用它我不确定你希望你的结构是什么,但根据你上面的内容,你把值放在变量的地方试试吧。
var formObject = {"formObject": [
{"firstName": firstName, "lastName": lastName},
{"phoneNumber": phone},
{"address": address},
]}
虽然这似乎更有意义(为什么你在上面的文字中有一个数组?):
var formObject = {
firstName: firstName
...
}
答案 2 :(得分:6)
尝试此操作,了解如何从字符串创建对象。
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);
答案 3 :(得分:4)
在执行$('#lastName')
之类的操作时,您正在引用DOM元素。这是id
属性“lastName”的元素。为什么这样?您想引用存储在局部变量中的值,完全不相关。试试这个(假设formObject
的赋值与变量声明的范围相同) -
var formObject = {
formObject: [
{
firstName:firstName, // no need to quote variable names
lastName:lastName
},
{
phoneNumber:phoneNumber,
address:address
}
]
};
这看起来很奇怪:你正在创建一个对象“formObject”,它包含一个名为“formObject”的成员,它包含一个对象数组。
答案 4 :(得分:2)
var formValues = {
firstName: $('#firstName').val(),
lastName: $('#lastName').val(),
phone: $('#phoneNumber').val(),
address: $('#address').val()
};
请注意,这将包含对象文字被解释的时间点元素的值,而不是访问对象属性时的值。你需要为此写一个吸气剂。