Cadrer des données JSON-LD — Numio
Restructure du JSON-LD avec un frame via jsonld.frame : les nœuds qui correspondent au frame (par exemple par @type) deviennent les résultats de premier niveau, et les nœuds qu'ils référencent sont imbriqués à l'intérieur.
Transformer un @graph plat en arbre ayant pour racine le type dont votre application a besoin, par exemple chaque Book avec sa library imbriquée.
Quand l’utiliser
- Transformer un @graph plat en arbre ayant pour racine le type dont votre application a besoin, par exemple chaque Book avec sa library imbriquée.
- Sélectionner uniquement les nœuds d'un @type dans un jeu de données JSON-LD plus large.
Mode d’emploi
- Collez le document source dans l'éditeur JSON-LD.
- Écrivez le frame dans l'éditeur Frame : un @context plus des règles de correspondance comme "@type": "Book".
- Examinez le résultat ; s'il y a plusieurs correspondances, les nœuds sont listés dans @graph.
JSON-LD + frame
// JSON-LD editor
{
"@context": {"@vocab": "http://schema.org/"},
"@graph": [
{"@id": "http://example.org/lib", "name": "City Library"},
{"@id": "http://example.org/b1", "@type": "Book", "name": "Dune",
"holdingArchive": {"@id": "http://example.org/lib"}},
{"@id": "http://example.org/b2", "@type": "Book", "name": "Emma",
"holdingArchive": {"@id": "http://example.org/lib"}}
]
}
// Frame editor
{"@context": {"@vocab": "http://schema.org/"}, "@type": "Book"}JSON-LD avec frame
{
"@context": {
"@vocab": "http://schema.org/"
},
"@graph": [
{
"@id": "http://example.org/b1",
"@type": "Book",
"holdingArchive": {
"@id": "http://example.org/lib",
"name": "City Library"
},
"name": "Dune"
},
{
"@id": "http://example.org/b2",
"@type": "Book",
"holdingArchive": {
"@id": "http://example.org/lib",
"name": "City Library"
},
"name": "Emma"
}
]
}Détails et limites
Ici, les références de nœuds sont remplacées par le nœud référencé : la library est imbriquée dans chaque book.
Un nœud qui ne correspond pas au frame (la library) n'apparaît que comme objet imbriqué, pas comme résultat à part entière.
S'exécute dans votre navigateur avec jsonld.js et ses options de framing par défaut ; @embed, @explicit et les flags similaires peuvent être définis dans le frame lui-même.
FAQ
Comment ne renvoyer que certaines propriétés ?
Ajoutez "@explicit": true au frame et listez les propriétés voulues, chacune avec {} comme valeur.
Pourquoi y a-t-il une clé @graph dans le résultat ?
Quand plusieurs nœuds correspondent au frame, les résultats sont renvoyés dans @graph. Une correspondance unique est renvoyée comme objet de premier niveau.
Pourquoi l'éditeur Frame est-il prérempli avec un contexte schema.org ?
C'est l'exemple par défaut de la page. Ce contexte est une URL distante que votre navigateur doit télécharger ; remplacez-le par un contexte en ligne pour un usage hors ligne. En cas d'échec du téléchargement, la page affiche une erreur indiquant l'URL.