2014-12-31 94 views
0

假設我具有簡單的JSON對象,如下所示。使用JSON對象的Javascript中的斜槓替換雙引號

{"test":"test"} 

現在我想將其轉換成以下格式

{\"test\":\"test\"} 

我已經發現了一些用斜線和雙引號代替雙引號的解決方案,但在文本格式,所有這些作品。

我需要將這種格式作爲消息參數傳遞給AWS SNS。

+0

可以嘗試JSON.stringify(JSON.stringify({「test」:「test」})); – Hacketo

+0

1.這是一個普通的老對象而不是JSON; 2.''{「test」:「test」}''會是[JSON](http://json.org); 3.爲什麼你認爲你必須逃避報價? 4.通過POST發送JSON(從2開始) – Andreas

+0

如果您已經找到了處理文本的方法,那麼只需序列化您的JSON對象(使用stringify或類似的東西)並在JSON序列化的字符串上執行解決方案。 –

回答

2

您可能首先透過JSON.stringify()

var temp = {"test":"test"}; 
var tempStr = JSON.stringify(temp); 
console.log(tempStr); //> {"test":"test"} 
var modifiedStr = tempStr.replace(/"/g, '\\"'); 
console.log(modifiedStr); //> {\"test\":\"test\"} 

如果你只想編碼只有打開和關閉雙引號轉換成JSON對象的字符串格式,您可以嘗試這個

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\"} 
+0

不起作用的用戶有用。 – Hacketo

+0

」,我不確定AWS SNS接受的格式,請告訴我,如果知道的話,它可能對那些遇到同樣問題但PHP – Icarus

2

正如我在評論所說 可以使用JSON.stringify兩次

Javascript object去一個
相關問題