Ошибка в инструменте тестирования структурированных данных для JSON-LD, опубликованном в GTM: «Отсутствует» или «}» в объявлении объекта ». - PullRequest
0 голосов
/ 07 января 2019

Я пытаюсь добавить структурированную разметку на страницу магазина, используя 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>

Этот код вставляется на мою страницу с помощью пользовательского тега HTML в GTM и публикуется на странице магазина. Используя https://jsonlint.com/,, я убедился, что JSON-LD, кажется, действителен. Однако при сканировании URL-адреса с помощью инструмента тестирования структурированных данных Google все равно появляется следующее сообщение об ошибке:

Отсутствует ',' или '}' в объявлении объекта.

Еще хуже, когда я копирую и вставляю код в инструмент тестирования структурированных данных, используя тест «фрагмент кода» вместо теста URL, сообщения об ошибках не отображаются.

У вас есть представление, что я делаю не так?

1 Ответ

0 голосов
/ 08 января 2019

(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>",

(Обратите внимание, что в идеале лучше использовать простой текст вместо HTML в значении . Свойство description на Schema.org не ожидает значения HTML.)

...