Google Rich Results 测试中的值类型“@context”不正确

Incorrect value type "@context" in Google Rich Results Test

我是 JSON-LD 的新手,目前正在努力让 Google Rich Results Test 对我的自定义 JSON-LD 数据感到满意。

每次我使用 @context 而不是 https://schema.org/ 时,它都会显示错误 Incorrect value type "@context"

这个基于 json-ld.org 上下文的简单示例甚至会发生这种情况:

<script type="application/ld+json">
{
  "@context": "https://json-ld.org/contexts/person.jsonld",
  "@type": "Person",
  "name": "Foo"
}
</script>

经过一些尝试和错误后,我发现使用以下代码 json-ld.org/playground 如果我使用 @vocab

会显示相同的结果
<script type="application/ld+json">
{
  "@context": {"@vocab": "http://xmlns.com/foaf/0.1/"},
  "@type": "Person",
  "name": "Foo"
}
</script>

虽然 Google 对这段代码很满意,但我不确定这是否可以或应该是解决这种“结构化数据解析错误”的正确解决方案?

写入非schema.org JSON-LD数据的正确方法是什么(被Google接受)?

根据 Dan Brickley(Google 负责 Schema.org 的员工)的说法,这些问题将为新的验证器解决或记录:

Thanks - noted and acknowledged. The tool is not opensource (it is a view provided by Google's structured data validation infrastructure). I will make sure these issues are addressed or documented before we link the new validator more prominently from Schema.org.

https://github.com/schemaorg/schemaorg/issues/2921#issuecomment-879817283