JSON-LD를 평탄화 형식으로 변환 — Numio
jsonld.flatten으로 JSON-LD 문서를 평탄화합니다. 중첩된 노드를 포함한 모든 노드가 @graph의 최상위 항목이 되고, 중첩 객체는 {"@id"} 참조로 바뀝니다. 이름이 없는 노드에는 _:b0 같은 빈 노드 ID가 부여됩니다.
깊게 중첩된 JSON-LD를 @id로 인덱싱하거나 저장소에 불러오기 쉬운 평평한 노드 목록으로 바꿉니다.
이럴 때 사용하세요
- 깊게 중첩된 JSON-LD를 @id로 인덱싱하거나 저장소에 불러오기 쉬운 평평한 노드 목록으로 바꿉니다.
- _:b 빈 노드로 나타나므로 @id가 없는 중첩 객체를 찾을 수 있습니다.
사용 방법
- 문서를 JSON-LD 편집기에 붙여 넣습니다.
- 결과를 압축할 context를 Context 편집기에 넣습니다. 예: {"@context": {"@vocab": "http://schema.org/"}}.
- @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를 가진 노드는 모든 프로퍼티를 가진 하나의 항목으로 병합됩니다.