JSONPath 테스터
JSONPath 표현식 입력 → 즉시 결과 추출
JSONPath 테스터란?
JSONPath는 XPath의 JSON 버전으로, JSON 데이터에서 특정 값을 추출하는 쿼리 언어입니다. 이 도구는 경로 문자열을 문자 단위로 순회하며 .(자식 구분자), ..(재귀 하강), [...](인덱스·와일드카드·필터) 토큰으로 직접 파싱합니다 — 대괄호 밖에서 만나는 마침표는 매번 이전까지 쌓인 키 이름을 하나의 토큰으로 확정 짓고 다음 세그먼트로 넘어가므로, $.store.books[*].title처럼 여러 단계로 중첩된 경로도 각 세그먼트(store → books → title)가 정확히 분리되어 평가됩니다. API 응답 분석, 데이터 추출, 조건부 필터링에 활용합니다.
자주 묻는 질문
JSONPath 기본 구문은?
$ (루트), . (자식), .. (재귀 하강), * (와일드카드), [n] (n번째 인덱스), [?(@.key > val)] (필터 표현식), [-1] (마지막 요소).
$.store.books[*].title은 무슨 뜻인가요?
루트($) → store → books 배열의 모든 요소(*) → title 필드를 추출합니다. 예시 JSON에 적용하면 ["A", "B"]처럼 각 책의 제목만 뽑아낸 배열이 반환됩니다.
재귀 하강(..)이란?
$..title은 JSON의 모든 깊이에서 title 키를 찾아 값을 반환합니다. 객체 트리를 깊이 우선으로 순회하며 만나는 모든 title 값을 하나의 배열로 모읍니다.
필터 표현식은?
[?(@.price > 10)]처럼 조건식을 사용해 배열 요소를 필터링할 수 있습니다. @는 현재 요소를 의미하며, ==, !=, >, >=, <, <= 비교 연산자를 지원합니다.
JSONPath vs JMESPath 차이는?
JSONPath는 광범위하게 사용되며 대부분 언어 라이브러리가 지원합니다. JMESPath는 AWS CLI 표준으로 더 엄격한 스펙을 가집니다.
어떤 언어에서 JSONPath를 쓸 수 있나요?
JavaScript(jsonpath-plus), Python(jsonpath-ng), Java(Jayway), Go, Ruby 등 대부분 언어에서 라이브러리를 제공합니다.
배열 슬라이싱도 가능한가요?
표준 JSONPath는 [0:2] 슬라이싱을 지원하는 구현체가 있습니다. 이 도구는 정수 인덱스(양수·음수)와 와일드카드, 필터 표현식을 지원하며 범위 슬라이싱은 지원하지 않습니다.
결과가 비어있는 경우는?
표현식이 올바르지 않거나 JSON에 해당 경로가 없을 때 빈 결과가 반환됩니다. 예를 들어 존재하지 않는 키를 참조하거나 배열이 아닌 값에 인덱스를 적용하면 해당 세그먼트에서 결과가 걸러집니다.