如何从 javascript Google 中的 json 字符串中解析出未转义的单引号 '
How to parse out unescaped single quote ' from json string in javascript Google Translate
我正在调用 google 翻译 api 并取回未完全解码的字符串。特别是,我看到 '单引号应该在哪里。
例如:
{
"q": "det är fullt",
"target": "en"
}
Returns
{
"data": {
"translations": [
{
"translatedText": "It&\#39;s full",
"detectedSourceLanguage": "sv"
}
]
}
}
我原以为 JSON.parse 会解决这个问题,但事实并非如此。我需要调用其他一些本机函数吗?我目前的解决方法是使用正则表达式 .replace(/'/g, "'");
来解决这个问题,但是有没有更好的方法来使用 javascript 来解码这种类型的东西?
啊哈!问题是因为响应是 HTML 编码的。
如果我将翻译直接放到页面上,引文呈现得很好。但是,我将结果放在文本区域中,让用户有机会编辑该翻译。因此,浏览器不会自动将字符串读取为 HTML,因为它不会直接呈现为 HTML.
我现在使用的解决方案是使用 DOMParser 解码字符串,如 on this Whosebug 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);
我正在调用 google 翻译 api 并取回未完全解码的字符串。特别是,我看到 '单引号应该在哪里。
例如:
{
"q": "det är fullt",
"target": "en"
}
Returns
{
"data": {
"translations": [
{
"translatedText": "It&\#39;s full",
"detectedSourceLanguage": "sv"
}
]
}
}
我原以为 JSON.parse 会解决这个问题,但事实并非如此。我需要调用其他一些本机函数吗?我目前的解决方法是使用正则表达式 .replace(/'/g, "'");
来解决这个问题,但是有没有更好的方法来使用 javascript 来解码这种类型的东西?
啊哈!问题是因为响应是 HTML 编码的。
如果我将翻译直接放到页面上,引文呈现得很好。但是,我将结果放在文本区域中,让用户有机会编辑该翻译。因此,浏览器不会自动将字符串读取为 HTML,因为它不会直接呈现为 HTML.
我现在使用的解决方案是使用 DOMParser 解码字符串,如 on this Whosebug 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);