假设我有如下的Simple JSON对象。
{"test":"test"}
现在我想将其转换为以下格式
{\"test\":\"test\"}
我找到了一些用斜杠和双引号替换双引号的解决方案,但所有这些都适用于文本格式。
我需要将这种格式作为消息参数传递给AWS SNS。
答案 0 :(得分:2)
您可以先使用JSON.stringify()
将JSON对象转换为字符串格式var temp = {"test":"test"};
var tempStr = JSON.stringify(temp);
console.log(tempStr); //> {"test":"test"}
var modifiedStr = tempStr.replace(/"/g, '\\"');
console.log(modifiedStr); //> {\"test\":\"test\"}
如果您只想编码打开和关闭双引号,可以试试这个
var temp = {"test":'te"st'};
var tempObj = JSON.parse(JSON.stringify(temp));
for(var k in tempObj){
tempObj[k]=tempObj[k].replace(/"/g, "<DOUBLE_QUOTES_4594>");
}
var tempStr = JSON.stringify(tempObj);
console.log(tempStr); //> {"test":"te<DOUBLE_QUOTES_4594>st"}
var modifiedStr = tempStr.replace(/"|"/g, '\\"').replace(/<DOUBLE_QUOTES_4594>/g, '"');
console.log(modifiedStr); //> {\"test\":\"te"st\"}
答案 1 :(得分:2)
正如我在评论中所建议的那样
您可以使用Javascript object
两次1}}从escaped JSON
转到JSON.stringify
var myObject = {"test":"test"};
var myJson = JSON.stringify(myObject); // {"test":"test"}
var myEscapedJson = JSON.stringify(myJson); // "{\"test\":\"test\"}"