JSON-LD 缺少“}”或对象成员名称。错误

JSON-LD Missing '}' or object member name. error

我想先将 json-ld 添加到我的网站,然后再将其添加到我的开发站点以进行测试

<script type="application/ld+json">
{
  "@context": "http://schema.org",
  "@type": "Organization",
  "url": "xxxxxxxxxxxxxxxx",
  "contactPoint": [{
    "@type": "ContactPoint",
    "telephone": "+xx-xxx-xxx-xxxx",
    "contactType": "customer service"

  }]
}
</script>

我收到错误消息,指出缺少“}”或对象成员名称。这是什么错误,我用括号 correctly.how 来修复它,请帮助

这段代码完全没问题。它既有效 JSON 又有效 JSON-LD。您可以使用 JSON-LD playground and Google's Structured Data Testing tool.

对其进行测试

通常此错误是由于不需要的逗号,确保删除每个 { } 块中所有最后元素的尾随逗号。

示例片段:

<script type="application/ld+json">
{
    "@context": "http://schema.org",
    "@type": "Article",
    "mainEntityOfPage": {
        "@type": "WebPage",
        "@id": "http://foo.bar", // Remove comma here
    }, // Remove comma here

    // Add other required fields if necessary
}
</script>

我 运行 遇到了完全相同的问题。 JSON-LD 标记与最后一个元素后的尾随逗号等无关。您的绝对正确。

但是,请注意 Google 不接受单引号或 ''。您必须为每个键和值使用双引号或 "",包括数组中的元素而不是数组本身。

我遇到了同样的问题,并发现了错误的不寻常原因。在我的例子中,一个未知的空白字符导致了这个问题。

我只是用空格替换了所有那些未知的空白字符,它对我有用。

附上图片。

如果你的模式有这个

&quot;

然后尝试用普通的替换它

"

我也遇到了同样的问题。在我的例子中,它只是删除“”之后的最后一个逗号并在 }.

之后放置和结束。
"contactType": "customer service"     <== 
(YOU DONT HAVE COMMA HERE, BUT IF THIS IS THE CASE YOU SHOULD DELETE THE COMA)

   }],     <==(AND PUT IT HERE)
},     <==(OR HERE, YOU JUST TRY IT)