Angenommen, ich habe ein JSON-Objekt mit einigen Eigenschaften in einem verschachtelten Objekt.Verschachtelte Strukturen/Werte in JSON-LD notieren
{
"title": "My Blog Post",
"meta": {
"publishedAt": "2016-08-01T00:00:00Z"
}
}
Gibt es eine einfache Art und Weise kann ich nur ein @context
mein Top-Level-Objekt hinzufügen diese Eigenschaften zu erreichen (das heißt nur „passieren“ Meta-Objekt)? Etwas entlang diese Linien:
{
"@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"
}
}
Ich möchte zu vermeiden, hinzufügen (duplicate) @id
an das verschachtelte Objekt, das ist, wie ich es sonst gelöst haben:
{
"@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"
}
}
Diese Lösung funktioniert, erfordert aber die Duplizierung und kommt von ethanresnick's comments on Github über das Kommentieren von JSON API. Er notierte in another issue, dass @context
nicht "ziemlich ausdrucksvoll genug ist, um die JSON-API-Struktur mit Anmerkungen zu versehen". Ich hatte gehofft, dass er zumindest in dieser Angelegenheit falsch liegen könnte.
Wenn Sie einfach die 'publishedAt' Begriff definiert wird es für alle Instanzen arbeiten (aber, Sie wollen wahrscheinlich' xsd: dateTime', nicht 'xsd: date '). –
Wenn Sie versuchen, das Element "meta" zu essen, dann können Sie dies nicht in JSON-LD tun. –
@GreggKellogg Vielen Dank! Sie haben natürlich Recht mit 'xsd: dateTime'. Ich bin traurig, das zu hören. Wenn du deinen Kommentar als Antwort postest, würde ich das als akzeptiert markieren :) – vicvicvic