首页 > 解决方案 > 与 GTM 一起发布的 JSON-LD 结构化数据测试工具出错:“对象声明中缺少 ',' 或 '}'。”

问题描述

我正在尝试使用 GTM 和 JSON-LD 将结构化标记添加到商店页面。这是代码:

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "SportingGoodsStore",
  "name": "SAIL",
  "image": "https://www.sail.ca/media/stores/z-12-lat_45.451220021743-lon_45.451220021743-510x350.png",
  "@id": "https://www.sail.ca/fr/nos-magasins/brossard",
  "url": "https://www.sail.ca/fr/nos-magasins/brossard",
  "telephone": "450 321-1835",
  "priceRange": "$$",
  "address": {
    "@type": "PostalAddress",
    "streetAddress": "8780, boul. Leduc",
    "addressLocality": "Brossard",
    "addressRegion": "QC",
    "postalCode": "J4Y 0G4",
    "addressCountry": "CA"
  },
  "geo": {
    "@type": "GeoCoordinates",
    "latitude": 45.4514453,
    "longitude": -73.44171039999998
  },
  "openingHoursSpecification": [{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Monday",
      "Tuesday"
    ],
    "opens": "10:00",
    "closes": "18:00"
  },{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": [
      "Wednesday",
      "Thursday",
      "Friday"
    ],
    "opens": "10:00",
    "closes": "21:00"
  },{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Saturday",
    "opens": "09:00",
    "closes": "17:00"
  },{
    "@type": "OpeningHoursSpecification",
    "dayOfWeek": "Sunday",
    "opens": "10:00",
    "closes": "17:00"
  }]
}
</script>

此代码使用 GTM 中的自定义 HTML 标记插入我的页面,并发布在商店页面上。使用https://jsonlint.com/,我确保 JSON-LD 似乎是有效的。但是,当我使用 Google 的结构化数据测试工具扫描 URL 时,我仍然收到以下错误消息:

对象声明中缺少 ',' 或 '}'。

更糟糕的是,当我使用“代码片段”测试而不是 URL 测试将代码复制粘贴到结构化数据测试工具中时,没有错误消息。

你知道我做错了什么吗?

标签: google-tag-managerjson-ld

解决方案


(您在问题中包含的 JSON-LD 与链接文档中的 JSON-LD 不同。以下以后者为准。)

您的 JSON-LD 包含以下内容:

"description": "<p style="margin-bottom: 0cm;">HTML with &eacute; and <strong>more HTML</strong></p>",

错误是该值包含未转义的"字符。因此,JSON-LD 将被解析为

"description": "<p style=",

其余内容将使其无效。

要修复它,您必须"将值中的任何内容转义为\",例如:

"description": "<p style=\"margin-bottom: 0cm;\">HTML with &eacute; and <strong>more HTML</strong></p>",

(请注意,您最好在 value 中使用纯文本而不是HTML。Schema.org 的description属性不需要 HTML 值。)


推荐阅读