Przejdź do treści

JSON-LD do formy spłaszczonej — Numio

Spłaszcza dokument JSON-LD za pomocą jsonld.flatten: każdy węzeł, łącznie z zagnieżdżonymi, staje się wpisem najwyższego poziomu w @graph, a zagnieżdżone obiekty są zastępowane referencjami {"@id"}. Węzły bez nazw otrzymują puste identyfikatory węzłów, takie jak _:b0.

Przekształcanie głęboko zagnieżdżonego JSON-LD w płaską listę węzłów, którą można łatwo zaindeksować według @id lub załadować do sklepu.

JSON-LD

Context

Flattened

Kiedy go używać

  • Przekształcanie głęboko zagnieżdżonego JSON-LD w płaską listę węzłów, którą można łatwo zaindeksować według @id lub załadować do sklepu.
  • Sprawdzanie, które zagnieżdżone obiekty nie mają @id, ponieważ pojawiają się jako puste węzły _:b.

Jak używać

  1. Wklej dokument do edytora JSON-LD.
  2. Umieść kontekst, w którym chcesz zagęścić wynik, w edytorze kontekstu, na przykład {"@context": {"@vocab": "http://schema.org/"}}.
  3. Przeczytaj tablicę @graph, która zawiera listę każdego węzła, posortowaną według @id.

JSON-LD + kontekst

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

Spłaszczony 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"
    }
  ]
}

Szczegóły i ograniczenia

Edytor kontekstu jest wymagany i musi zawierać prawidłowe JSON; wynik jest z nim zagęszczony.

Puste identyfikatory węzłów (_:b0, _:b1, …) są przypisywane podczas przetwarzania i nie są stabilnymi identyfikatorami.

Działa w przeglądarce z jsonld.js. Zdalne konteksty w dowolnym edytorze są pobierane przez Twoją przeglądarkę. Jeśli pobieranie nie powiedzie się, na stronie zostanie wyświetlony błąd dotyczący nazwy kontekstu URL.

FAQ

Co dzieje się z zagnieżdżonymi obiektami?

Każdy zagnieżdżony obiekt staje się osobnym wpisem w @graph, a rodzic zachowuje tylko odwołanie, np. "customer": {"@id": "_:b0"}.

Dlaczego tablica jednoelementowa jest pokazywana jako obiekt?

Ponieważ wynik jest kompaktowy, właściwość z jedną wartością (orderedItem powyżej) jest zapisywana bez tablicy.

Czy ten sam węzeł zostanie scalony, jeśli pojawi się dwukrotnie?

Tak. Węzły o tym samym @id są łączone w jeden wpis ze wszystkimi ich właściwościami.

Specyfikacje i referencje