Zum Inhalt springen

JSON-LD in eine flache Struktur umwandeln — Numio

Flacht ein JSON-LD-Dokument mit jsonld.flatten ab: Jeder Knoten, auch verschachtelte, wird zu einem Eintrag auf oberster Ebene in @graph, und verschachtelte Objekte werden durch {"@id"}-Referenzen ersetzt. Unbenannte Knoten erhalten Blank-Node-IDs wie _:b0.

Tief verschachteltes JSON-LD in eine flache Knotenliste umwandeln, die sich leicht nach @id indizieren oder in einen Store laden lässt.

JSON-LD

Context

Flattened

Wann sie hilft

  • Tief verschachteltes JSON-LD in eine flache Knotenliste umwandeln, die sich leicht nach @id indizieren oder in einen Store laden lässt.
  • Herausfinden, welche verschachtelten Objekte keine @id haben, da sie als _:b-Blank-Nodes erscheinen.

Anwendung

  1. Füge das Dokument in den Editor JSON-LD ein.
  2. Gib im Editor Context den Context an, mit dem das Ergebnis kompaktiert werden soll, zum Beispiel {"@context": {"@vocab": "http://schema.org/"}}.
  3. Lies das @graph-Array, das jeden Knoten einmal auflistet, sortiert nach @id.

JSON-LD + Context

// 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/"}}

Abgeflachtes JSON-LD

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

Details und Einschränkungen

Der Editor Context ist erforderlich und muss gültiges JSON enthalten; das Ergebnis wird damit kompaktiert.

Blank-Node-IDs (_:b0, _:b1, …) werden während der Verarbeitung vergeben und sind keine stabilen Bezeichner.

Läuft im Browser mit jsonld.js. Entfernte Contexts in beiden Editoren werden von deinem Browser abgerufen. Schlägt der Download fehl, zeigt die Seite einen Fehler mit der Context-URL.

FAQ

Was passiert mit verschachtelten Objekten?

Jedes verschachtelte Objekt wird zu einem eigenen Eintrag in @graph, und das Elternobjekt behält nur eine Referenz, etwa "customer": {"@id": "_:b0"}.

Warum wird ein Array mit einem Element als Objekt angezeigt?

Da das Ergebnis kompaktiert wird, wird eine Eigenschaft mit einem Wert (oben orderedItem) ohne Array geschrieben.

Wird derselbe Knoten zusammengeführt, wenn er zweimal vorkommt?

Ja. Knoten mit derselben @id werden zu einem Eintrag mit all ihren Eigenschaften zusammengeführt.

Spezifikationen und Referenzen