如何在JavaScript中生成带转义双引号的嵌套JSON字符串格式?
解决方法
要生成带转义双引号的biz_content字符串,本质是把JSON对象转成的字符串再作为值进行转义处理,具体有两种可靠方式:
方式一:嵌套使用JSON.stringify()
这是最稳妥的方法,利用JSON.stringify()自动转义字符串内双引号的特性:
// 1. 定义原始业务对象 const bizContentObj = { "create_ip":"127.0.0.1", "create_time":"20240523093226", "expire_time":"20240523095226" }; // 2. 先转成标准JSON字符串 const jsonStr = JSON.stringify(bizContentObj); // 3. 再对字符串做一次JSON转义,得到带转义双引号的结果 const escapedStr = JSON.stringify(jsonStr); // 4. 组装成目标格式 const finalResult = `"biz_content": ${escapedStr}`;
执行后finalResult的内容就是:
"biz_content": "{\"create_ip\":\"127.0.0.1\",\"create_time\":\"20240523093226\",\"expire_time\":\"20240523095226\"}"
方式二:手动替换双引号
如果需要更直观的控制,可以用正则替换字符串中的双引号:
const bizContentObj = { "create_ip":"127.0.0.1", "create_time":"20240523093226", "expire_time":"20240523095226" }; const jsonStr = JSON.stringify(bizContentObj); // 替换所有双引号为转义后的双引号 const escapedStr = jsonStr.replace(/"/g, '\\"'); const finalResult = `"biz_content": "${escapedStr}"`;
最终得到的结果和方式一完全一致。
内容的提问来源于stack exchange,提问作者user824624
相关产品推荐
相关产品推荐

