위키득계정 ↗
기술

JSONPath

JSONPath기술
명세
RFC 9535
루트 표시
$
필터의 현재 노드
@
질의 결과
선택된 노드의 목록
JSONPath는 JSON 값에서 조건에 맞는 부분을 선택하는 질의 표현식이다. 객체 이름과 배열 인덱스뿐 아니라 와일드카드와 범위, 필터를 사용하며 결과를 선택된 노드들의 목록으로 다룬다.

값과 위치를 함께 보는 질의

JSON 자료를 루트와 자식으로 이어진 트리로 보고 각 값과 그 위치를 노드로 다룬다. 질의는 루트에서 시작해 선택 단계를 이어 간다. 객체에서는 항목의 값이 선택 대상이며 항목 이름 자체를 별도 노드로 고르는 것은 아니다.

하나 이상의 값을 고르는 방법

객체 이름과 배열 인덱스로 특정 자식을 고를 수 있다. 와일드카드는 여러 자식을 선택하고 하위 탐색은 더 깊은 후손까지 살핀다. 배열 슬라이스는 시작과 끝 및 간격으로 범위를 정하며 필터는 현재 노드를 기준으로 조건을 평가한다. 점 표기와 대괄호 표기를 함께 사용할 수 있다.

JSON 포인터와의 차이

JSON 포인터가 특정 위치를 가리키는 데 쓰인다면 JSONPath는 질의에 맞는 여러 값을 선택할 수 있다. 일치하는 결과가 없을 수도 있다. RFC 명세는 언어나 실행 환경마다 달라졌던 구현의 의미를 공통으로 정리하지만 기존 구현 모두와 완전한 하위 호환을 뜻하지는 않는다.

관련 문서

JSON 포인터 / JSON 패치 / JSON / 배열 / 트리 자료 구조 / XPath