Expandir dados JSON-LD — Numio
Expande um documento JSON-LD com jsonld.js: o @context é aplicado e removido, os termos viram IRIs completas e cada valor é envolvido em um array de objetos @value ou @id. Chaves que não mapeiam para uma IRI são descartadas.
Verificar para quais IRIs seus termos do schema.org ou de um @context próprio realmente são resolvidos.
Quando usar
- Verificar para quais IRIs seus termos do schema.org ou de um @context próprio realmente são resolvidos.
- Depurar dados estruturados em que uma propriedade some sem aviso porque não está definida no contexto.
Como usar
- Cole um documento JSON-LD com seu @context no editor JSON-LD.
- Confira o array expandido: cada nó lista as IRIs completas das propriedades com os valores em arrays.
- Compare com sua entrada; qualquer propriedade ausente na saída não foi mapeada pelo 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"
}
]
}
]Detalhes e limitações
A expansão roda no seu navegador com o pacote jsonld. Um @context remoto como https://schema.org/ (usado no exemplo padrão) é baixado pelo seu navegador; se isso falhar (offline, CORS), a página mostra um erro com a URL.
"@type": "@id" em uma definição de termo transforma um valor string em uma referência {"@id": ...} em vez de um literal.
A saída é sempre um array de nível superior, mesmo para um único nó.
FAQ
Por que algumas das minhas propriedades sumiram?
A expansão descarta chaves que não estão definidas no @context e não são IRIs absolutas. Por exemplo, com apenas name mapeado, a chave nickname é removida da saída.
Posso usar o contexto do schema.org?
Sim. "@context": "https://schema.org/" funciona se o seu navegador conseguir baixá-lo. Para uso offline, escreva as definições de termos inline, como no exemplo.
Por que cada valor está dentro de um array?
A forma expandida sempre usa arrays para os valores das propriedades e para @type, para que os processadores tratem valores únicos e múltiplos da mesma forma.