JSON-LD in forma appiattita — Numio
Appiattisce un documento JSON-LD con jsonld.flatten: ogni nodo, compresi quelli nidificati, diventa una voce di primo livello in @graph e gli oggetti nidificati vengono sostituiti da riferimenti {"@id"}. I nodi senza nome ricevono ID di nodo vuoti come _:b0.
Trasformando JSON-LD profondamente annidato in un elenco semplice di nodi facile da indicizzare tramite @id o caricare in un negozio.
Quando usarlo
- Trasformando JSON-LD profondamente annidato in un elenco semplice di nodi facile da indicizzare tramite @id o caricare in un negozio.
- Trovare quali oggetti nidificati non hanno @id, poiché vengono visualizzati come _:b nodi vuoti.
Come si usa
- Incolla il documento nell'editor JSON-LD.
- Inserisci il contesto per compattare il risultato nell'editor Contesto, ad esempio {"@context": {"@vocab": "http://schema.org/"}}.
- Leggi l'array @graph, che elenca ogni nodo una volta, ordinato per @id.
JSON-LD + contesto
// JSON-LD editor
{
"@context": {"@vocab": "http://schema.org/"},
"@id": "http://example.org/order/7",
"@type": "Order",
"customer": {"name": "Jane Doe"},
"orderedItem": [
{"@id": "http://example.org/product/42", "name": "Lamp"}
]
}
// Context editor
{"@context": {"@vocab": "http://schema.org/"}}JSON-LD appiattito
{
"@context": {
"@vocab": "http://schema.org/"
},
"@graph": [
{
"@id": "_:b0",
"name": "Jane Doe"
},
{
"@id": "http://example.org/order/7",
"@type": "Order",
"customer": {
"@id": "_:b0"
},
"orderedItem": {
"@id": "http://example.org/product/42"
}
},
{
"@id": "http://example.org/product/42",
"name": "Lamp"
}
]
}Dettagli e limiti
L'editor di contesto è obbligatorio e deve contenere JSON valido; il risultato è compattato con esso.
Gli ID dei nodi vuoti (_:b0, _:b1, …) vengono assegnati durante l'elaborazione e non sono identificatori stabili.
Funziona nel tuo browser con jsonld.js. I contesti remoti in entrambi gli editor vengono recuperati dal tuo browser. Se il download fallisce, la pagina mostra un errore nominando il contesto URL.
FAQ
Cosa succede agli oggetti nidificati?
Ogni oggetto annidato diventa una voce separata in @graph e il genitore mantiene solo un riferimento, ad esempio "customer": {"@id": "_:b0"}.
Perché un array a elemento singolo viene visualizzato come oggetto?
Poiché il risultato è compattato, una proprietà con un valore (orderedItem sopra) viene scritta senza l'array.
Lo stesso nodo viene unito se appare due volte?
Sì. I nodi con lo stesso @id vengono uniti in un'unica voce con tutte le loro proprietà.