본문으로 건너뛰기

JSON-LD를 평탄화 형식으로 변환 — Numio

jsonld.flatten으로 JSON-LD 문서를 평탄화합니다. 중첩된 노드를 포함한 모든 노드가 @graph의 최상위 항목이 되고, 중첩 객체는 {"@id"} 참조로 바뀝니다. 이름이 없는 노드에는 _:b0 같은 빈 노드 ID가 부여됩니다.

깊게 중첩된 JSON-LD를 @id로 인덱싱하거나 저장소에 불러오기 쉬운 평평한 노드 목록으로 바꿉니다.

JSON-LD

Context

Flattened

이럴 때 사용하세요

  • 깊게 중첩된 JSON-LD를 @id로 인덱싱하거나 저장소에 불러오기 쉬운 평평한 노드 목록으로 바꿉니다.
  • _:b 빈 노드로 나타나므로 @id가 없는 중첩 객체를 찾을 수 있습니다.

사용 방법

  1. 문서를 JSON-LD 편집기에 붙여 넣습니다.
  2. 결과를 압축할 context를 Context 편집기에 넣습니다. 예: {"@context": {"@vocab": "http://schema.org/"}}.
  3. @graph 배열을 확인합니다. 각 노드가 한 번씩 @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/"}}

평탄화된 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"
    }
  ]
}

세부 정보 및 제한 사항

Context 편집기는 필수이며 유효한 JSON이어야 합니다. 결과는 이 context로 압축됩니다.

빈 노드 ID(_:b0, _:b1 등)는 처리 중에 부여되며 안정적인 식별자가 아닙니다.

jsonld.js로 브라우저에서 실행됩니다. 두 편집기의 원격 context는 모두 브라우저가 가져옵니다. 다운로드에 실패하면 해당 context URL이 포함된 오류가 표시됩니다.

FAQ

중첩 객체는 어떻게 되나요?

각 중첩 객체는 @graph의 독립된 항목이 되고, 부모에는 "customer": {"@id": "_:b0"} 같은 참조만 남습니다.

항목이 하나인 배열이 객체로 표시되는 이유는 무엇인가요?

결과가 압축되므로 값이 하나인 프로퍼티(위의 orderedItem)는 배열 없이 작성됩니다.

같은 노드가 두 번 나오면 병합되나요?

네. 같은 @id를 가진 노드는 모든 프로퍼티를 가진 하나의 항목으로 병합됩니다.

사양 및 참고 자료