2017-06-14 50 views
0

我打電話給谷歌翻譯api,並找回沒有完全解碼的字符串。特別是,我看到了'單引號應該在哪裏。如何從javascript中的json字符串解析非轉義單引號'谷歌翻譯

例如:

{ 
    "q": "det är fullt", 
    "target": "en" 
} 

返回

{ 
    "data": { 
     "translations": [ 
     { 
     "translatedText": "It&\#39;s full", 
     "detectedSourceLanguage": "sv" 
     } 
    ] 
    } 
} 

我本來期望JSON.parse照顧這一點,但事實並非如此。是否有一些其他本地函數需要調用?我目前的修復是使用正則表達式來解決這個問題,但是有沒有更好的方法來使用javascript解碼這種類型的東西?

+0

*「我本來期望JSON.parse藉此照顧」 * JSON無關(也應該有沒有什麼)與HTML做。 –

回答

0

啊哈!該問題是由於響應是HTML編碼而引起的。

如果我直接將翻譯放到頁面上,則報價呈現得很好。但是,我將結果放在textarea中,以便用戶有機會編輯該翻譯。因此,瀏覽器不會自動將該字符串讀取爲HTML,因爲它不會直接以HTML格式顯示。

我現在用的解決方案是使用的DOMParser字符串解碼描述on this stackoverflow thread

var encodedStr = 'hello & world'; 

var parser = new DOMParser; 
var dom = parser.parseFromString(
    '<!doctype html><body>' + encodedStr, 
    'text/html'); 
var decodedString = dom.body.textContent; 

console.log(decodedString);