用 JSON.stringify 引用值

Quoting values with 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" 值用引号引起来。照原样,它只是打印出不带引号的值。

我尝试通过以下方式转义引号字符:

"p": "\"" + p[i] + "\"'",

结果像 this,我也试过这样做:

"p": '"' + p[i] + '"',

输出 this.

如何让 p 值用引号引起来,即:“139500000”?

这对我有用。

var value = 1023;

var p = '\"'+ value + '\"';
console.log(p);

你可以查看我创建的fiddle

https://jsfiddle.net/Refatrafi/1dkhjpjw/

I need the "p" values in this object to be wrapped in quotation marks.

换句话说,您希望这些值是 strings。 JSON 中的字符串表示为 "..."。好像 p[i] 是一个数字。您可以通过调用 String(x)x.toString():

将值显式转换为字符串
"p": String(p[i]),

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

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