【问题标题】:JSON.parse error if i save JSON with single quotes to a variable如果我将带有单引号的 JSON 保存到变量中,则 JSON.parse 错误
【发布时间】:2020-04-20 06:52:33
【问题描述】:

您好,我正在从我的控制器获取消息 JSON 数组到我的 jsp 标头,我正在将此 JSON 数组保存到 javascript 中的一个变量中,带有如下单引号

var m1='[{"datestamp":"-2","id":"1","message":"<span class=\"cblue\">Suresh MB<\/span> wants to join company please click <span class=\"cgreen\"><a href=\"getAllRegistrationRequests\">here<\/a><\/span> to see other requests","ismessageread":"1"},{"datestamp":"-3","id":"2","message":"<span class=\"cblue\">Wilson<\/span> has been <span class=\"cgreen\">Unlocked<\/span>","ismessageread":"1"},{"datestamp":"-3","id":"3","message":"<span class=\"cblue\">Wilson<\/span> has been <span class=\"cgreen\">Unlocked<\/span>","ismessageread":"1"}]'; 	

m1=JSON.parse(m1);

console.log(m1);

为什么我收到以下代码的 JSON.parse 错误 m1=JSON.parse(m1);

我必须将数据保存在单引号内,因为我可能无法获取时间码将是的数据消息

var m1=;

【问题讨论】:

  • 您能否在此处使用jsfiddlesnippet 创建一个small demo 以显示正在发生的问题。
  • 您似乎在保存将要执行的字符串,而不是对对象的实际引用,因此在 JSON 字符串中,如果您有双引号,它将破坏 JSON 字符串。根据您的描述,在我看来就是这样。
  • 这里是小提琴jsfiddle.net/wsumtayj
  • @JoelHager 是的,你是对的。如何避免这种情况,因为在某些情况下我可能无法从服务器获取数据。

标签: jquery json spring-mvc


【解决方案1】:

您应该将属性值中的所有/" 替换为/',如下所示:

var m1='[{"datestamp":"-2","id":"1","message":"<span class=\'cblue\'>Suresh MB<\/span> wants to join company please click <span class=\'cgreen\'><a href=\'getAllRegistrationRequests\'>here<\/a><\/span> to see other requests","ismessageread":"1"},{"datestamp":"-3","id":"2","message":"<span class=\'cblue\'>Wilson<\/span> has been <span class=\'cgreen\'>Unlocked<\/span>","ismessageread":"1"},{"datestamp":"-3","id":"3","message":"<span class=\'cblue\'>Wilson<\/span> has been <span class=\'cgreen\'>Unlocked<\/span>","ismessageread":"1"}]'; 	

m1=JSON.parse(m1);

console.log(m1);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-02-26
    • 2021-09-09
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    • 1970-01-01
    相关资源
    最近更新 更多