所以我试图围绕JSON-LD,我看到的所有例子主要包括嵌入“链接数据”。但我想提供对链接数据的引用(主要是因为嵌入它可能导致10MB的有效负载)。所以我想知道我是否做得对。
这就是我所拥有的:
{
"@context": "/contexts/Customers.jsonld",
"@id": "/customers/1",
"@type": "Customer",
"sessions": {
"@id": "/customers/1/sessions",
"@type": "Session"
},
"dealer": "/dealers/2",
"givenName": "Abe",
"familyName": "Abrahms",
/* ... snip ... */
}
我在这里讨论的链接数据的引用由sessions
属性表示。假设这是正确的,那么我需要在Customer
上下文中更改什么?
"@context": {
"hydra": "http://www.w3.org/ns/hydra/core#",
"doc": "https://api.waterlinkconnect.com/doc#",
"Customer": "doc:Customer",
"givenName": "doc:Customer/givenName",
"familyName": "doc:Customer/familyName",
"email":"doc:Customer/email",
"address":"doc:Customer/address",
"notes":"doc:Customer/notes",
"phone1":"doc:Customer/phone1",
"phone2":"doc:Customer/phone2"
"sessions": "???????"
}
答案 0 :(得分:2)
您只需提供IRI作为值,例如:
"propertyFoo": { "@id": "https://example.com/some-iri" }
(此处使用@id
,以便IRI不会被解释为字符串值。)
因此,使用sessions
的示例很好,但如果您不需要/需要,则
如果此属性始终将IRI作为值,您可以在@type
中定义:
@context
然后,您可以在提供值时省略"propertyFoo":
{
"@id": "https://your-vocabulary.example.com/propertyFoo",
"@type": "@id"
}
:
@id
(如果像这样使用类型强制,则无法为该节点提供其他属性。)