google-tag-manager - 与 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 测试将代码复制粘贴到结构化数据测试工具中时,没有错误消息。
你知道我做错了什么吗?
解决方案
(您在问题中包含的 JSON-LD 与链接文档中的 JSON-LD 不同。以下以后者为准。)
您的 JSON-LD 包含以下内容:
"description": "<p style="margin-bottom: 0cm;">HTML with é and <strong>more HTML</strong></p>",
错误是该值包含未转义的"
字符。因此,JSON-LD 将被解析为
"description": "<p style=",
其余内容将使其无效。
要修复它,您必须"
将值中的任何内容转义为\"
,例如:
"description": "<p style=\"margin-bottom: 0cm;\">HTML with é and <strong>more HTML</strong></p>",
(请注意,您最好在 value 中使用纯文本而不是HTML。Schema.org 的description
属性不需要 HTML 值。)
推荐阅读
- windows - 根据部分文件名创建文件夹并将文件移动到创建的文件夹中
- swift - 如何在 Swift 中以编程方式旋转 USDZ 文件中的 3D 模型?
- python - 在python中将xml文件解析为数据框
- winapi - Win32 和 Bluemod+SR 之间的蓝牙配对 - 密码输入
- c# - 如何用字符串分隔的逗号填充 C# 列表框
- spring - Repository 没有保存数据 onError 方法,而保存了 Listener 的 onWrite 方法
- azure-devops-rest-api - 缺少工作项注释的 devops REST API asOf 参数
- openedge - 如何使数据库访问快速进展 4gl
- python-3.x - Python Kivy:如何将实例变量传递给另一个窗口(类)?
- android - 当应用程序关闭或不在前台工作时,如何从android中的服务器(xampp)获取数据?