2016-03-06 37 views
-1

有一個簡單的方法來處理這個例子情況JSON.stringify和串號

var data = { 
    "phone": input 
} 
var payload = JSON.stringify(data); 

在情況下的有效載荷在API調用中使用和API要求該電話值是一個字符串但是,電話號碼只能輸入爲數字或字符串,例如123777777或1237-77777等

我試着添加引號,但JSON.stringify轉義它們,因此最終成爲最終數據的一部分。

的「黑客」的解決方案,我發現是添加一個尾隨空間即

var data = { 
    "phone": input + " " 
} 

但想知道如果有一個簡潔明快的方式來處理這種情況?

+0

所以......你不想破折號? –

+0

不,我希望它被視爲一個字符串,謝謝 –

回答

1

始終可以使用toString()。這甚至會工作,如果它是一個字符串

var data = { 
    "phone": input.toString() 
} 
+1

嗯,不*總是*,因爲像null或undefined這樣的東西沒有這種方法,但它會工作,如果輸入保證是一個字符串或數字。 – JJJ

+0

@Juhana形象地說,但點了 – charlietfl

4

字符串不必在他們什麼,所以你可以

var data = { 
    "phone": input + "" 
}; 

"" + input將正常工作。但在這種情況下,我通常使用String功能:

var data = { 
    "phone": String(input) 
}; 

注:new String(...),只是String(...)

有沒有錯input.toString()選擇其他人建議要麼,只要你知道input會比nullundefined其他的東西。 (如果是nullundefined,則會導致錯誤。)

+0

謝謝,看起來像我應該使用 –

0
$(document).ready(function(){ 
var input=1234567890; 
var data = { 
    "phone": input.toString() 
} 
console.log("inputType---->"+$.type(input)); 
var payload = JSON.stringify(data); 
console.log("payload----afterstringify--->"+payload); 
console.log("dataType------->"+$.type(data.phone)); 
console.log("payloadType-------->"+$.type(payload)); 

});