Vai al contenuto

JSON-LD in forma estesa — Numio

Espande un documento JSON-LD con jsonld.js: il @context viene applicato e rimosso, i termini diventano IRI completi e ogni valore è racchiuso in un array di oggetti @value o @id. Le chiavi che non sono mappate su IRI vengono eliminate.

Verifica a quali IRI si risolvono effettivamente i tuoi termini schema.org o @context personalizzati.

JSON-LD

Expanded

Quando usarlo

  • Verifica a quali IRI si risolvono effettivamente i tuoi termini schema.org o @context personalizzati.
  • Debug di dati strutturati in cui una proprietà scompare silenziosamente perché non è definita nel contesto.

Come si usa

  1. Incolla un documento JSON-LD con il suo @context nell'editor JSON-LD.
  2. Leggi l'array espanso: ogni nodo elenca gli IRI di proprietà completi con valori negli array.
  3. Confronta con il tuo input; qualsiasi proprietà mancante nell'output non è stata mappata dal contesto.

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 espanso

[
  {
    "@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"
      }
    ]
  }
]

Dettagli e limiti

L'espansione viene eseguita nel tuo browser con il pacchetto jsonld. Un @context remoto come https://schema.org/ (utilizzato dall'esempio predefinito) viene scaricato dal browser; se fallisce (offline, CORS), la pagina mostra un errore con il nome URL.

"@type": "@id" nella definizione di un termine trasforma un valore di stringa in un riferimento {"@id": ...} anziché in un valore letterale.

L'output è sempre un array di primo livello, anche per un singolo nodo.

FAQ

Perché alcune delle mie proprietà sono scomparse?

L’espansione elimina le chiavi non definite in @context e che non sono IRI assoluti. Ad esempio, se è mappato soltanto name, una chiave nickname viene rimossa dall’output.

Posso utilizzare il contesto schema.org?

Sì. "@context": "https://schema.org/" funziona se il tuo browser può recuperarlo. Per l'utilizzo offline, scrivi le definizioni dei termini in linea come nell'esempio.

Perché ogni valore è all'interno di un array?

Il modulo espanso utilizza sempre gli array per i valori delle proprietà e @type, quindi i processori possono gestire valori singoli e multipli allo stesso modo.

Specifiche e riferimenti