Javascript 使用JSON.stringify引用值

Javascript 使用JSON.stringify引用值,javascript,json,stringify,Javascript,Json,Stringify,我正在创建一个对象,该对象如下所示: let outputOut = { "_id": id[i], "regNum": code[i], "sd": sd[i], "pd": ptOut, "p": p[i], ...} //output fs.writeFile('./output/file.json', JSON.stringify(output, null, 2), 'utf-8'); 但是,我需要将这个对象中的“p”值用引号括起来。它只是打印

我正在创建一个对象,该对象如下所示:

let outputOut = {
    "_id": id[i],
    "regNum": code[i],
    "sd": sd[i],
    "pd": ptOut,
    "p": p[i],
...}
//output 
fs.writeFile('./output/file.json', JSON.stringify(output, null, 2), 'utf-8');
但是,我需要将这个对象中的“p”值用引号括起来。它只是打印出没有引号的值

let outputOut = {
    "_id": id[i],
    "regNum": code[i],
    "sd": sd[i],
    "pd": ptOut,
    "p": String(p[i]),
         ^^^^^^^^^^^^
...}
我尝试通过以下方式转义引号字符:

"p": "\"" + p[i] + "\"'",
结果是,我也试过这样做:

"p": '"' + p[i] + '"',
它的输出

如何将p值包装在引号中,即“139500000”?

这对我很有用

var value = 1023;

var p = '\"'+ value + '\"';
console.log(p);
你可以查看我制作的小提琴

我需要这个对象中的“p”值用引号括起来

let outputOut = {
    "_id": id[i],
    "regNum": code[i],
    "sd": sd[i],
    "pd": ptOut,
    "p": String(p[i]),
         ^^^^^^^^^^^^
...}
换句话说,您希望这些值是字符串。JSON中的字符串表示为
“…”
。似乎
p[i]
是一个数字。通过调用
string(x)
x.toString()
,可以将值显式转换为字符串:


字符串值属性将字符串化为字符串,即带有引号

let outputOut = {
    "_id": id[i],
    "regNum": code[i],
    "sd": sd[i],
    "pd": ptOut,
    "p": String(p[i]),
         ^^^^^^^^^^^^
...}
另一个想法是使用
replacer
参数来
JSON.stringify

JSON.stringify(output, function(key, value) {
  if (key === 'p') value = String(value);
  return value;
});

反斜杠的作用是什么?它将创建一个包含引号的字符串。JSON看起来像
“p”:“\“123\”
,这可能不是OP想要的。@FelixKling是的,我尝试过这个解决方案。但是反斜杠出现在JSON中,我无法让它们消失。如果值是字符串,它将以引号输出。这就是你想要的吗?如果是这样的话,您所需要的只是一个快速的预处理步骤,将
p
属性的值转换为字符串。有趣的解决方案,我应该意识到这一点,谢谢!