是否有一种简单的方法来处理这个示例情况
var data = {
"phone": input
}
var payload = JSON.stringify(data);
在API调用中使用有效负载且API要求电话值为字符串的情况下,电话号码只能输入数字或字符串,例如123777777或1237-77777等
我尝试添加引号,但JSON.stringify对它们进行了转义,因此最终成为最终数据的一部分。
' hack'我找到的解决方案是添加一个尾随空格,即
var data = {
"phone": input + " "
}
但是想知道是否有一种简单而巧妙的方法来处理这种情况?
答案 0 :(得分:4)
字符串不必包含任何内容,因此可以执行:
var data = {
"phone": input + ""
};
或"" + input
也可以。但在这种情况下,我通常使用String
函数:
var data = {
"phone": String(input)
};
注意:不是new String(...)
,只有String(...)
。
其他人提出的input.toString()
选项也没有错,只要您知道input
不是null
或undefined
。 (如果是null
或undefined
,则会导致错误。)
答案 1 :(得分:2)
如果你想确保它是一个字符串调用toString()
,它确保将数字解析为字符串。
var data = {
"phone": input.toString()
}
最好的是,即使你有一个字符串,这也不会引发错误。它总是一个字符串。有关详细信息,请参阅此处:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/toString
答案 2 :(得分:1)
始终可以使用toString()
。即使它是一个字符串
var data = {
"phone": input.toString()
}
答案 3 :(得分: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));
});