JSONPath 테스터

jsonpath-plus 엔진으로 와일드카드·재귀 하강·슬라이스·$.store.book[?(@.price<10)] 같은 필터 표현식을 JSON에 실행해 결과를 확인합니다.

.json이나 .txt 파일을 이 칸에 끌어다 놓아도 됩니다.

JSONPath 문법 — 연산자별 정리
연산자뜻예시 — 누르면 바로 실행
$문서의 루트
@필터가 지금 보고 있는 요소
.name ['name']이름으로 고르는 자식 — 공백이나 점이 든 이름은 대괄호로
..재귀 하강: 깊이와 상관없이 그 이름을 모두
*와일드카드: 모든 멤버나 요소
[n]배열 요소를 번호로 (0부터 셈)
[a,b]합집합: 번호나 이름 여러 개를 한 번에
[start:end:step]슬라이스: 요소 범위 (end는 포함 안 함), 음수는 끝에서부터 셈
[?( )]필터: 식이 참인 요소만
( )스크립트: 요소로 계산한 번호

JSONPath 표현식을 입력하면 일치하는 값이 표시됩니다.

JSONPath 표현식이 실제로 고르는 값

JSONPath 테스터는 JSON 문서를 붙여넣고 JSONPath 표현식을 입력하면 선택되는 모든 값을 개수와 함께 즉시 보여줍니다. 값 아래의 “각 값이 나온 위치”는 일치한 값마다 그것을 고르는 정확한 경로($.store.book[0].price)를 적어 주므로 같은 값 두 개도 구별되고, 경로 복사로 전부 가져갈 수 있습니다. 반대 방향도 됩니다 — JSON에서 값을 클릭하면 그 값을 고르는 표현식을 알려 주고, 이 경로 쓰기 버튼으로 표현식 칸에 넣을 수 있습니다. API 파이프라인이나 설정 조회, 테스트에 넣기 전에 쿼리를 확인할 수 있습니다.

작동 방식

JSON은 브라우저의 네이티브 파서로 파싱되고 jsonpath-plus 엔진으로 기기 안에서 평가됩니다 — 아무것도 업로드되지 않아 민감한 데이터도 로컬에 머뭅니다.

지원 문법

점·대괄호 표기, 와일드카드(*), 재귀 하강(..), 배열 슬라이스, $.store.book[?(@.price<10)] 같은 필터 표현식을 지원하며, 필터는 CSP 안전 평가기에서 실행됩니다. 표현식 칸 아래의 “JSONPath 문법 — 연산자별 정리” 표는 연산자마다 뜻과 예시를 보여 주며, 샘플 문서에 맞춰 쓴 예시를 누르면 표현식 칸에 들어가고, JSON 칸이 비어 있으면 샘플 문서도 함께 들어가 빈 페이지에서도 바로 결과를 볼 수 있습니다.

큰 문서 읽기

보기 좋게 정리와 한 줄로 압축은 토큰 사이의 공백만 옮겨 JSON 칸을 다시 쓰므로 긴 숫자, 이스케이프, 반복된 키가 그대로 남습니다. 문서를 트리로 보기는 루트만 펼치고 그 아래는 펼칠 때까지 접어 두며, 펼친 배열은 앞쪽 항목과 함께 나머지가 몇 개인지 알려 주고, 이름을 누르면 그 경로가 표현식 칸에 들어갑니다. 링크 복사로 만든 링크에는 표현식만 담기고 JSON은 담기지 않습니다. 문서는 바뀔 때마다 한 번만 파싱하므로 표현식을 입력하는 동안에는 다시 읽지 않고, 아주 큰 문서는 키 입력마다가 아니라 입력을 멈췄을 때 파싱합니다. .json이나 .txt 파일은 파일 열기 말고 칸에 끌어다 놓아도 됩니다.

자주 묻는 질문

JSONPath가 무엇인가요?

JSON을 위한 질의 언어로, XML의 XPath에 해당합니다. $.store.book[*].author 같은 표현식은 문서를 따라가며 일치하는 값을 모두 돌려줍니다.

"잘못된 JSON" 오류가 나는 이유는 무엇인가요?

문서가 엄격한 JSON이어야 하기 때문입니다 — 키와 문자열은 큰따옴표로 감싸야 하고, 마지막 쉼표나 주석이 있으면 안 됩니다. 문제가 몇 행 몇 열에 있는지 함께 알려 주니 그 자리를 고치거나, 확실하지 않으면 JSON 포매터 · 검증기나 JSON 복구를 먼저 거치세요.

특정 값 하나의 경로는 어떻게 찾나요?

JSON 칸에서 그 값을 클릭하거나 키보드로 커서를 옮기면 커서 위치의 경로:에 그 값을 고르는 표현식(예: $.store.bicycle.color)이 나오고, 이 경로 쓰기를 누르면 표현식 칸에 들어갑니다. 반대로 각 값이 나온 위치는 표현식이 찾은 값마다 경로를 적어 주므로 가격이 같은 두 항목도 구별되고, 경로 복사로 전부 복사할 수 있습니다. JSONPath가 따옴표로 감쌀 수 없는 글자가 든 키에는 틀린 경로 대신 경로를 붙이지 않습니다.

큰 문서를 접어서 보거나, 정리하거나, 쿼리를 링크로 보낼 수 있나요?

네. 문서를 트리로 보기는 루트만 펼친 채 그 아래를 모두 접어 두고, 객체나 배열을 하나씩 펼칠 수 있으며, 큰 것은 앞쪽 항목만 그리고 나머지가 몇 개인지 알려 줍니다. 이름을 누르면 그 경로가 표현식 칸에 들어갑니다. 보기 좋게 정리와 한 줄로 압축은 공백만 옮겨 JSON 칸을 다시 쓰므로 긴 숫자, 이스케이프, 반복된 키가 들어간 그대로 나오고, 칸이 올바른 JSON이 아닐 때는 누를 수 없습니다. 링크 복사로 만든 링크에는 표현식만 담기고 JSON은 담기지 않습니다.

몇 메가바이트짜리 문서도 버벅이지 않나요? 파일을 끌어다 놓을 수도 있나요?

네. 문서는 바뀔 때마다 한 번만 파싱하고 모든 표현식을 그 결과 위에서 실행하므로, 쿼리를 입력하는 동안 문서를 다시 읽지 않습니다. 아주 큰 문서는 키 입력마다가 아니라 입력을 멈췄을 때 파싱하고, 작은 문서는 바로 답합니다. .json이나 .txt 파일을 JSON 칸에 끌어다 놓으면 파일 열기…와 같은 방식으로 읽습니다 — 크기 제한이 같고, 텍스트 인코딩을 확인하며, 파일 이름은 다운로드에 이어집니다. 다른 종류의 파일은 안내와 함께 거부합니다.