Aller au contenu

Développer des données JSON-LD — Numio

Développe un document JSON-LD avec jsonld.js : le @context est appliqué puis retiré, les termes deviennent des IRI complètes et chaque valeur est enveloppée dans un tableau d'objets @value ou @id. Les clés qui ne correspondent à aucune IRI sont supprimées.

Vérifier vers quelles IRI vos termes schema.org ou ceux d'un @context personnalisé se résolvent réellement.

JSON-LD

Expanded

Quand l’utiliser

  • Vérifier vers quelles IRI vos termes schema.org ou ceux d'un @context personnalisé se résolvent réellement.
  • Déboguer des données structurées dans lesquelles une propriété disparaît sans prévenir parce qu'elle n'est pas définie dans le contexte.

Mode d’emploi

  1. Collez un document JSON-LD avec son @context dans l'éditeur JSON-LD.
  2. Examinez le tableau développé : chaque nœud liste les IRI complètes des propriétés avec leurs valeurs dans des tableaux.
  3. Comparez avec votre entrée ; toute propriété absente de la sortie n'était pas associée par le contexte.

JSON-LD

{
  "@context": {
    "name": "http://schema.org/name",
    "knows": {"@id": "http://schema.org/knows", "@type": "@id"},
    "homepage": {"@id": "http://schema.org/url", "@type": "@id"}
  },
  "@id": "http://example.org/jane",
  "@type": "http://schema.org/Person",
  "name": "Jane Doe",
  "homepage": "http://janedoe.example",
  "knows": "http://example.org/john"
}

JSON-LD développé

[
  {
    "@id": "http://example.org/jane",
    "@type": [
      "http://schema.org/Person"
    ],
    "http://schema.org/url": [
      {
        "@id": "http://janedoe.example"
      }
    ],
    "http://schema.org/knows": [
      {
        "@id": "http://example.org/john"
      }
    ],
    "http://schema.org/name": [
      {
        "@value": "Jane Doe"
      }
    ]
  }
]

Détails et limites

Le développement s'exécute dans votre navigateur avec le package jsonld. Un @context distant comme https://schema.org/ (utilisé par l'exemple par défaut) est téléchargé par votre navigateur ; en cas d'échec (hors ligne, CORS), la page affiche une erreur indiquant l'URL.

"@type": "@id" dans une définition de terme transforme une valeur chaîne en référence {"@id": ...} au lieu d'un littéral.

La sortie est toujours un tableau de premier niveau, même pour un seul nœud.

FAQ

Pourquoi certaines de mes propriétés ont-elles disparu ?

Le développement supprime les clés qui ne sont pas définies dans le @context et qui ne sont pas des IRI absolues. Par exemple, si seul name est associé, la clé nickname est retirée de la sortie.

Puis-je utiliser le contexte schema.org ?

Oui. "@context": "https://schema.org/" fonctionne si votre navigateur peut le télécharger. Pour un usage hors ligne, écrivez les définitions de termes en ligne comme dans l'exemple.

Pourquoi chaque valeur est-elle dans un tableau ?

La forme développée utilise toujours des tableaux pour les valeurs des propriétés et pour @type, afin que les processeurs traitent de la même façon les valeurs uniques et multiples.

Spécifications et références