Скажем, у меня есть объект JSON с некоторыми свойствами во вложенном объекте.
{
"title": "My Blog Post",
"meta": {
"publishedAt": "2016-08-01T00:00:00Z"
}
}
Есть ли простой способ просто добавить @context
к моему объекту верхнего уровня, чтобы получить доступ к этим свойствам (т.е. просто «пройти» через метаобъект)? Что-то в этом роде:
{
"@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 на Github об аннотировании JSON API. В другой проблеме он отметил, что @context
"не совсем достаточно выразительным, чтобы аннотировать структуру JSON API». Я надеялся доказать его неправоту хотя бы в этом вопросе.
publishedAt
, он будет работать для всех экземпляров (но вы, вероятно, хотитеxsd:dateTime
, а неxsd:date
). - person Gregg Kellogg   schedule 13.08.2016meta
, то нет, это невозможно сделать в JSON-LD. - person Gregg Kellogg   schedule 13.08.2016xsd:dateTime
конечно. Мне грустно это слышать. Если вы опубликуете свой комментарий в качестве ответа, я отмечу его принятым :) - person vicvicvic   schedule 14.08.2016