【问题标题】:Parse JSON throws error while using Special characters使用特殊字符时解析 JSON 会引发错误
【发布时间】:2017-11-26 23:00:19
【问题描述】:

我已经解析了下面的字符串,但是由于字符('****'),它没有被解析,

JSON.parse("{\"data\":\"value \"}")

它会抛出错误,

未捕获的 SyntaxError:JSON 中第 15 位的意外标记

我怎样才能摆脱这个。

注意:在我的情况下,我需要跳过所有动态出现的特殊字符。所以我需要通用解决方案。我能做到吗?

【问题讨论】:

  • 你能通过不转义吗?您是从 DB 中读取的吗?
  • 我正在从服务器端读取 excel 文件(可能包含也可能不包含这些类型的特殊字符) 并将 json 字符串返回到客户端,然后我将json字符串转换为对象。
  • 您可以在解析之前替换任何非 utf 8 字符。从这里尝试正则表达式:stackoverflow.com/a/20856346。 JSON.parse("{\"data\":\"value \"}".replace(/[^\x00-\x7F]/g, ""))

标签: javascript json parsing


【解决方案1】:

似乎一些特殊字符来自 excel 文件。试试这个,

<script type='text/javascript'>
        window.onload = function () {
            var str ='{\"data\":\"value \ \"}'.replace(/\\n/g, "\\n")
               .replace(/\\'/g, "\\'")
               .replace(/\\"/g, '\\"')
               .replace(/\\&/g, "\\&")
               .replace(/\\r/g, "\\r")
               .replace(/\\t/g, "\\t")
               .replace(/\\b/g, "\\b")
               .replace(/\\f/g, "\\f");
            var d = JSON.parse(str);
            alert(d.data);
        }
    </script>

【讨论】:

  • 特殊字符由于某种原因没有出现在这篇文章中,所以我附上了它的图片。请参考那个图片。
猜你喜欢
  • 1970-01-01
  • 2012-04-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-03
  • 2014-06-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多