在JSON-LD中,@type
不仅显示在顶层,而且显示在contactPoint
属性中。如果已经提供了上下文,为什么需要它?
<script type="application/ld+json">
{ "@context" : "http://schema.org",
"@type" : "Organization",
"url" : "http://www.your-company-site.com",
"contactPoint" : [
{ "@type" : "ContactPoint",
"telephone" : "+1-401-555-1212",
"contactType" : "customer service"
}
]
}
</script>
解析器不知道上下文以及我们与组织合作的第一个@type
行,因此属性contactPoint
意味着具有该类型对象呢?否则,我是否可以将该属性重命名为contact
,然后指定@type
应该告知它是什么?这个例子对我来说似乎多余。也许我误解了JSON-LD如何在这里工作。
答案 0 :(得分:2)
Schema.org does not require,它可以对属性进行评估。它列出了预期的值,但是作者不必遵循它,这只是一个建议。
例如,contactPoint
属性的预期值是具有ContactPoint
类型的实体。但是可以使用字符串或URL值(严格来说甚至是Thing
项或任何其他类型)。
即使您始终遵循建议并使用预期类型,仍然不一定清楚您的意思是哪种类型,因为
itemOffered
需要Product
或Service
)