JSON.stringify和数字作为字符串

Ala*_*ler 2 javascript json

有没有简单的方法来处理这种情况

var data = {
     "phone":  input
}
var payload = JSON.stringify(data);
Run Code Online (Sandbox Code Playgroud)

在有效载荷用于API调用且API要求电话值为字符串的情况下,电话号码只能作为数字或字符串输入,例如123777777或1237-77777等

我尝试添加引号,但JSON.stringify将其转义,因此最终成为最终数据的一部分。

我发现的“黑客”解决方案是添加一个尾随空格,即

var data = {
     "phone":  input + " "
}
Run Code Online (Sandbox Code Playgroud)

但是想知道是否有一种简单整洁的方法来处理这种情况吗?

T.J*_*der 6

字符串中不必包含任何内容,因此您可以执行以下操作:

var data = {
    "phone": input + ""
};
Run Code Online (Sandbox Code Playgroud)

"" + input也可以。但是在这种情况下,我通常使用以下String函数:

var data = {
    "phone": String(input)
};
Run Code Online (Sandbox Code Playgroud)

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

input.toString()别人建议的选项也没有错,但前提是您知道input不是nullundefined。(如果是nullundefined,则将导致错误。)