在JSON中使用不转义的花括号替换字符串

时间:2019-03-16 09:56:34

标签: javascript json postman

我试图用双花括号(由邮递员用于变量替换)替换字符串中的值,但是每次尝试引用或转义括号时,我总是得到附加的转义引号或双转义括号,所有这些都打破了替代:

原始字符串:

"header": [{"key": "x-device-auth","value": "\"token\""}]

OriginalString.replace('token','{{token}}')

结果:

"header":[{"key":"x-device-auth","value":"\"{{token}}\""}]

如果我搜索.replace('\"token\"','{{token}}'),则找不到匹配项。最后的字符串必须为:

"header": [{"key": "x-device-auth","value": "{{token}}"}]

2 个答案:

答案 0 :(得分:2)

您应该寻找带有转义的双引号的token,因为您也想替换它们。

var originalString = '"header": [{"key": "x-device-auth","value": "\\"token\\""}]';
console.log(originalString);
console.log(originalString.replace('\\"token\\"','{{token}}'));

originalString = '"header": [{"key": "x-device-auth","value": "\"token\""}]';
console.log(originalString);
console.log(originalString.replace('"token"','{{token}}'));

我添加了两种情况,一种情况是原始字符串实际上包含反斜杠(第一个原始字符串定义)。第二个没有。选择一个最符合您实际输入的内容:-)

答案 1 :(得分:0)

我看不到输入字符串已应用适当的转义字符。当您在javascript标记中发布问题时,我在下面尝试使用javascript及其给出所需的结果。

var str = "\"header\": [[{\"key\": \"x-device-auth\",\"value\": \"token\"}]";
  var res = str.replace('token','{{token}}');