javascript - 如何从 javascript 中的 json 字符串解析出未转义的单引号 ' Google Translate

标签 javascript json decode google-translate

我正在调用谷歌翻译API并获取未完全解码的字符串。特别是,我看到“单引号应该在哪里。

例如:

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

返回

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

我本来期望 JSON.parse 能够解决这个问题,但事实并非如此。我还需要调用其他一些 native 函数吗?我当前的修复方法是使用正则表达式 .replace(/'/g, "'"); 来修复此问题,但是有没有更好的方法来使用 javascript 解码此类内容?

最佳答案

啊哈!导致此问题的原因是响应是 HTML 编码的。

如果我将翻译直接放到页面上,引用就会呈现得很好。但是,我将结果放在文本区域中,以便用户有机会编辑该翻译。因此,浏览器不会自动将字符串读取为 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);

关于javascript - 如何从 javascript 中的 json 字符串解析出未转义的单引号 ' Google Translate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44548734/

相关文章:

JavaScript 隐写术 : Hiding an image inside of an image

javascript - HTML5 视频 MEDIA_ERR_DECODE 随机出现

SQL准备语句中的Javascript数组

javascript - 切换交互中的 JQuery .is() 问题

Python 请求模块 : urlencoding json data

javascript - 三.js JSON 文件压缩

javascript - Angular - 无法看到 Angular2 如何从服务自动更新数据

javascript - 使用 webworker 的 chrome 多线程功能?

iphone - 如何在 iPhone 中解析 Json 值?

go - 如何在 Perl 中编码的 Go 中对 Base64 进行 URL 安全解码?