一尘不染

JSON.parse得到“未捕获的SyntaxError:意外的令牌h”

json

尝试传递以下字符串时出现语法错误:

JSON.parse("[{\"Date\": \"4/4/2016 4:15:19 PM\", \"Message\":\"<h3>New 
Message</h3> Generated at 4/4/2016 4:15:19 PM.<br/><br/>Heavy Responsive 
URL: <a href=\"https://performingarts.withgoogle.com/en_us\" ></a><br/><br/>
<img src=\"https://s-media-cache-ak0.pinimg.com/236x/06/bd/ac/06bdacc904c12abdce3381ba1404fd7e.jpg\" /> \"} ]");

我知道当我使用双引号时,错误来自链接。

如果我使用单引号,则没有问题,但是数据是从服务器端获取的,我无法控制要传入的内容,因此只能在我这一边进行控制。

到目前为止,我从互联网上阅读的内容尝试了以下操作:

  1. JSON.stringify先使用,然后再使用JSON.parse。我可以解析没有问题,但是当我尝试循环数据时会出现问题。循环不是将其作为JSON循环,而是将数据作为字符串并循环每个单个文本。

  2. 转义我当前正在执行的每一个双引号,但它不能如上图所示。但是,如果我将所有双引号都替换为文字,恐怕某些想成为双引号的消息也将转换为文字,这将导致看起来很奇怪的消息。

请告知我还有什么其他替代方法可以解决此问题。


阅读 239

收藏
2020-07-27

共1个答案

一尘不染

您在JavaScript字符串文字中嵌入了JSON。

"并且\是JSON中的特殊字符,也是JavaScript字符串文字中的特殊字符。

href=\"https:转义"JavaScript字符串文字中的。然后,它"在JSON中成为。这会导致错误。

当您想要"JSON中的as数据时,您必须:

  • 转义"JavaScript(如您所愿)
  • "通过添加来转义JSON \
  • 退出\JavaScript

href=\\\"https:

2020-07-27