Javascript 带双引号的数据属性的jQuery JSON解析失败

Javascript 带双引号的数据属性的jQuery JSON解析失败,javascript,jquery,json,Javascript,Jquery,Json,我发现,如果jQuery读取属性值并解码引号,则无法正确获取HTML编码的值,因此JSON解析会因该值而失败 这是jQuery中的错误还是我没有正确编码我的值 以下是我的HTML编码JSON字符串: [ { "id": "1", "organisation_id": "1", "badge_id": "49", "target": "15", "target_type": "actions",

我发现,如果jQuery读取属性值并解码引号,则无法正确获取HTML编码的值,因此JSON解析会因该值而失败

这是jQuery中的错误还是我没有正确编码我的值

以下是我的HTML编码JSON字符串:

[
    {
        "id": "1",
        "organisation_id": "1",
        "badge_id": "49",
        "target": "15",
        "target_type": "actions",
        "target_title": null,
        "target_description": null,
        "start": "2014-01-15",
        "name": "Our goal",
        "description": "Vestibulum id ligula porta felis euismod semper. "Nullam" id dolor id nibh ultricies vehicula ut id elit. Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.",
        "created": "2013-08-07 14:26:56"
    },
    {
        "id": "19",
        "organisation_id": "1",
        "badge_id": "49",
        "target": "30000000",
        "target_type": "numeric",
        "target_title": "Revenue contribution",
        "target_description": "Specify how much this action contributes to the revenue goal",
        "start": "2014-01-21",
        "name": "November revenue",
        "description": "Reach revenue of $30,000,000 in November. Let's do this.",
        "created": "2014-01-21 16:59:25"
    }
]
请注意
说明
属性中的

这是这个问题的复制品:


我认为这是jQuery新版本中出现的一个问题。刚刚从1.7.x更新到1.11.0。

这是无效的JSON。当字符串变成JavaScript时,HTML实体将成为双引号字符。字符串中的双引号字符必须用反斜杠转义

字符的HTML编码使HTML解析器很高兴,但它导致属性值在JSON值(字符串常量)中间有一个纯的双引号字符。 如果在HTML实体之前加上反斜杠,它将是有效的JSON


编辑-在JSFIDLE中,您尝试使用jQuery
.data()
方法获取数据属性。这很好,但请注意,当jQuery看到类似JSON的内容时,它会尝试为您解析它。因此,当您返回属性值时,它已经被解析了。

您的属性以这种方式获取数据

"[{"id":"1","organisation_id":"1","badge_id":"49","target":"15","target_type":"actions","target_title":null,"target_description":null,"start":"2014-01-15","name":"Our goal","description":"Vestibulum id ligula porta felis euismod semper. "Nullam" id dolor id nibh ultricies vehicula ut id elit. Nulla vitae elit libero, a pharetra augue. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent commodo cursus magna, vel scelerisque nisl consectetur et.","created":"2013-08-07 14:26:56"},{"id":"19","organisation_id":"1","badge_id":"49","target":"30000000","target_type":"numeric","target_title":"Revenue contribution","target_description":"Specify how much this action contributes to the revenue goal","start":"2014-01-21","name":"November revenue","description":"Reach revenue of $30,000,000 in November. Let's do this.","created":"2014-01-21 16:59:25"}]"
错误将是粗体字,双引号包含在双引号内


猫门前庭id舌“Nullam”id dolor id nibh ultricies车辆ut id elit。精英自由主义者,法雷特拉·奥古斯。Lorem ipsum dolor sit amet,是一位杰出的献身者。大型康茂德百货公司(Praesent commodo cursus magna)的股份有限公司(vel scelerisque nisl Concertetur et.

他知道,这就是全部问题所在。谢谢你的回答。你的观点有参考依据吗?@Ronniegeris有参考依据吗?好吧,.@Cerbrus是的,解决方案是使属性值不是无效的JSON表达式…@Pointy我知道规范,但作为参考,它总是适合指向规范中描述的点的方向。