Expandir datos JSON-LD — Numio
Expande un documento JSON-LD con jsonld.js: el @context se aplica y se elimina, los términos pasan a IRI completas y cada valor se envuelve en un array de objetos @value o @id. Las claves que no se asignan a una IRI se descartan.
Comprobar a qué IRI se resuelven realmente tus términos de schema.org o de un @context propio.
Cuándo usarla
- Comprobar a qué IRI se resuelven realmente tus términos de schema.org o de un @context propio.
- Depurar datos estructurados en los que una propiedad desaparece sin aviso porque no está definida en el contexto.
Cómo usarla
- Pega un documento JSON-LD con su @context en el editor JSON-LD.
- Revisa el array expandido: cada nodo muestra las IRI completas de las propiedades con los valores en arrays.
- Compáralo con tu entrada; cualquier propiedad que falte en la salida no estaba asignada en el contexto.
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 expandido
[
{
"@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"
}
]
}
]Detalles y limitaciones
La expansión se ejecuta en tu navegador con el paquete jsonld. Un @context remoto como https://schema.org/ (usado en el ejemplo por defecto) lo descarga tu navegador; si falla (sin conexión, CORS), la página muestra un error con la URL.
"@type": "@id" en una definición de término convierte un valor string en una referencia {"@id": ...} en lugar de un literal.
La salida siempre es un array de nivel superior, incluso para un solo nodo.
FAQ
¿Por qué desaparecieron algunas de mis propiedades?
La expansión descarta las claves que no están definidas en el @context y no son IRI absolutas. Por ejemplo, si solo está asignado name, la clave nickname se elimina de la salida.
¿Puedo usar el contexto de schema.org?
Sí. "@context": "https://schema.org/" funciona si tu navegador puede descargarlo. Para usarlo sin conexión, escribe las definiciones de términos en línea como en el ejemplo.
¿Por qué cada valor está dentro de un array?
La forma expandida siempre usa arrays para los valores de las propiedades y para @type, de modo que los procesadores tratan igual los valores únicos y los múltiples.