JSON.parse get" Uncaught SyntaxError:意外的令牌h"

时间:2016-04-06 06:50:20

标签: javascript 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. 逃避我目前正在做的所有双重报价,但事实并非如此 如上所示工作。但如果我将每个双引号替换为 字面上,我害怕一些假设是双重的信息 引用也将变成文字,这将导致奇怪 看消息。

  3. 请告知我还有其他解决办法。

1 个答案:

答案 0 :(得分:1)

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

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

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

如果您想要{J}中的"作为数据,您必须:

  • 逃离JavaScript的"(正如您已经做的那样)
  • 通过添加"
  • 来逃离\以获取JSON
  • 逃离JavaScript的\

href=\\\"https: