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
属性的值转换为字符串。有趣的解决方案,我应该意识到这一点,谢谢!