在 JSON-LD 中注释嵌套的 structures/values
Annotating nested structures/values in JSON-LD
假设我有一个 JSON 对象,在嵌套对象中有一些属性。
{
"title": "My Blog Post",
"meta": {
"publishedAt": "2016-08-01T00:00:00Z"
}
}
有没有一种简单的方法可以将 @context
添加到我的顶级对象以达到
这些属性(即 "pass through" 元对象)?有事
这些行:
{
"@context": {
"title": "schema:name",
"meta.publishedAt": {
"@type": "xsd:date",
"@id": "schema:datePublished"
}
},
"@id": "/my-article",
"title": "My Blog Post",
"meta": {
"publishedAt": "2016-08-01T00:00:00Z"
}
}
我想避免必须向嵌套对象添加(重复)@id
,否则我将如何解决它:
{
"@context": {
"title": "schema:name",
"meta": { "@id": "_:meta", "@container": "@set" },
"publishedAt": {
"@type": "xsd:date",
"@id": "schema:datePublished"
}
},
"@id": "/my-article",
"title": "My Blog Post",
"meta": {
"@id": "/my-article",
"publishedAt": "2016-08-01T00:00:00Z"
}
}
此解决方案 有效 ,但需要复制,并且来自 ethanresnick's
Github 关于注释 JSON API 的评论。他在 another issue 中指出 @context
不是 "quite expressive enough to annotate the JSON API structure"。我希望至少在这个问题上能证明他是错的。
如果你想做的是吃掉 meta 元素,那么不,这在 JSON-LD 中是做不到的。
已经有人讨论过做一个可以做这样的事情的反向索引,但我没有看到一个问题。您可以在 https://github.com/json-ld/json-ld.org/issues 创建一个。在某个时候,CG 或新成立的 WG 将开始查看新版本的功能请求。
我刚刚发现最新的 JSON-LD 规范包括关于 nested properties 的新部分。像这样定义上下文应该会产生所需的输出:
{
"@context": {
"title": "schema:name",
"meta": "@nest",
"publishedAt": {
"@type": "xsd:date",
"@id": "schema:datePublished",
"@nest": "meta"
}
},
...
}
假设我有一个 JSON 对象,在嵌套对象中有一些属性。
{
"title": "My Blog Post",
"meta": {
"publishedAt": "2016-08-01T00:00:00Z"
}
}
有没有一种简单的方法可以将 @context
添加到我的顶级对象以达到
这些属性(即 "pass through" 元对象)?有事
这些行:
{
"@context": {
"title": "schema:name",
"meta.publishedAt": {
"@type": "xsd:date",
"@id": "schema:datePublished"
}
},
"@id": "/my-article",
"title": "My Blog Post",
"meta": {
"publishedAt": "2016-08-01T00:00:00Z"
}
}
我想避免必须向嵌套对象添加(重复)@id
,否则我将如何解决它:
{
"@context": {
"title": "schema:name",
"meta": { "@id": "_:meta", "@container": "@set" },
"publishedAt": {
"@type": "xsd:date",
"@id": "schema:datePublished"
}
},
"@id": "/my-article",
"title": "My Blog Post",
"meta": {
"@id": "/my-article",
"publishedAt": "2016-08-01T00:00:00Z"
}
}
此解决方案 有效 ,但需要复制,并且来自 ethanresnick's
Github 关于注释 JSON API 的评论。他在 another issue 中指出 @context
不是 "quite expressive enough to annotate the JSON API structure"。我希望至少在这个问题上能证明他是错的。
如果你想做的是吃掉 meta 元素,那么不,这在 JSON-LD 中是做不到的。
已经有人讨论过做一个可以做这样的事情的反向索引,但我没有看到一个问题。您可以在 https://github.com/json-ld/json-ld.org/issues 创建一个。在某个时候,CG 或新成立的 WG 将开始查看新版本的功能请求。
我刚刚发现最新的 JSON-LD 规范包括关于 nested properties 的新部分。像这样定义上下文应该会产生所需的输出:
{
"@context": {
"title": "schema:name",
"meta": "@nest",
"publishedAt": {
"@type": "xsd:date",
"@id": "schema:datePublished",
"@nest": "meta"
}
},
...
}