JS - JSON.parse - 保留特殊字符

时间:2015-07-27 13:18:51

标签: javascript json node.js parsing non-ascii-characters

我正在运行一个NodeJS应用程序,该应用程序从API获取某些帖子。 尝试使用特殊字符JSON.parse时,JSON.parse会失败。

特殊字符可以是任何其他语言,表情符号等。

当帖子没有特殊字符时,解析工作正常。 我需要保留所有文本,因为我需要处理所有可能的语言,所以我不能忽略这些字符。

我收到以下错误:

"Unexpected token �"

我应该能够处理的文本示例:

"summary": "★リプライは殆ど見てません★ Tokyo-based E-J translator. ここは流れてくるニュースの自分用記録でRT&メモと他人の言葉の引用、ブログのフィード。ここで意見を述べることはしません。「交流」もしません。関心領域は匦"�アイルランドと英国(他は専門外)※Togetterコメ欄と陰謀論が嫌いです。"

如何正确解析此类文本?

由于

2 个答案:

答案 0 :(得分:0)

你误解了你的问题,它与那个角色无关。

您的代码在您认为导致问题的特殊字符之前包含未转义的"。早期的"过早地终止了字符串。

如果插入反斜杠以转义",则可以将字符串解析为JSON:

    x = '{"summary": "★リプライは殆ど見てません★ Tokyo-based E-J translator. ここは流れてくるニュースの自分用記録でRT&メモと他人の言葉の引用、ブログのフィード。ここで意見を述べることはしません。「交流」もしません。関心領域は匦\\"�アイルランドと英国(他は専門外)※Togetterコメ欄と陰謀論が嫌いです。"}';

    console.log(JSON.parse(x));

答案 1 :(得分:0)

您需要传递一个不作为对象的字符串。

示例

JSON.parse('{"summary" : "a"}');

在你的情况下它应该是这样的

JSON.parse( '{"summary" : "★リプライは殆ど見てません★ Tokyo-based E-J translator. ここは流れてくるニュースの自分用記録でRT&メモと他人の言葉の引用、ブログのフィード。ここで意見を述べることはしません。「交流」もしません。関心領域は匦�アイルランドと英国(他は専門外)※Togetterコメ欄と陰謀論が嫌いです。"}')