簡體   English   中英

用變量創建json對象

[英]creating json object with variables

我試圖從我在表單中獲得的變量創建一個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);

演示: http//jsfiddle.net/vANKa/1

它被稱為Object Literal

我不確定你想要什么樣的結構,但根據你上面的內容,你把值放在變量中的地方試試這個。

var formObject =  {"formObject": [
                {"firstName": firstName, "lastName": lastName},
                {"phoneNumber": phone},
                {"address": address},
                ]}

雖然這似乎更有意義(為什么你在上面的文字中有一個數組?):

var formObject = {
   firstName: firstName
   ...
}

試試這個,看看如何從字符串創建一個對象。

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);

在執行類似$('#lastName')時,您正在引用DOM元素。 這是一個id屬性為“lastName”的元素。 為什么這樣? 您想引用存儲在局部變量中的值,完全不相關。 試試這個(假設對formObject的賦值與變量聲明的范圍相同) -

var formObject = {
    formObject: [
        {
            firstName:firstName,  // no need to quote variable names
            lastName:lastName
        },
        {
            phoneNumber:phoneNumber,
            address:address
        }
    ]
};

這看起來很奇怪:你正在創建一個對象“formObject”,它包含一個名為“formObject”的成員,它包含一個對象數組。

var formValues = {
    firstName: $('#firstName').val(),
    lastName: $('#lastName').val(),
    phone: $('#phoneNumber').val(),
    address: $('#address').val()
};

請注意,這將包含解釋對象文字時的元素值,而不是訪問對象屬性時的值。 你需要為此寫一個吸氣劑。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM