JSONPath 테스터
식을 바꾸는 즉시 결과가 바뀌어요. 아래 예시 버튼을 눌러 문법을 익혀 보세요.
JSON 안에서 원하는 값만 꺼내기
JSONPath는 JSON 문서 안의 위치를 가리키는 짧은 식이에요. XML의 XPath처럼 $(맨 위)에서 시작해 .이름이나 ['이름']으로 내려가요. API 응답에서 특정 값만 뽑거나, 테스트·모니터링 도구(Postman, JMeter, 쿠버네티스 kubectl 등)에 넣을 식을 미리 확인할 때 써요. 식이나 JSON을 고치면 결과가 바로 바뀌고, 표에는 찾은 값마다 정확한 경로와 JSON Pointer(/store/book/0/title)가 나와요.
자주 쓰는 문법
$.a.b·$['a']['b']— 이름으로 내려가기 (이름에 공백·한글·점이 있으면 대괄호와 따옴표)[0]첫 번째,[-1:]마지막,[0:3]0~2번째,[*]또는.*모든 항목$..price— 깊이와 상관없이 이름이 price인 모든 값[?(@.price < 10000)]— 조건 필터.@는 지금 항목이고, 필터 안에서 맨 위(루트)는@root로 써요.&&,||,===,!도 쓸 수 있어요.
안전한 실행
필터 식은 오픈소스 JSONPath-Plus(MIT 라이선스)의 ‘safe’ 모드로 계산해요. 자바스크립트를 그대로 실행하지 않고 비교·논리 연산만 해석하므로, 남이 준 식을 붙여넣어도 페이지에서 임의의 코드가 실행되지 않아요. 그 대신 함수 호출 같은 복잡한 식은 지원하지 않아요.
JSONPath는 오랫동안 구현마다 조금씩 달랐고, 2024년에 RFC 9535로 표준이 정해졌어요. 필터 문법이 ?(@.x)(괄호 있음)와 ?@.x(RFC 표기)로 다를 수 있으니, 실제로 쓸 도구에서도 한 번 확인하세요. 결과는 JSON 배열이나 CSV로 저장할 수 있고, 찾은 값이 모두 객체이면 CSV 열을 키 이름으로 나눠요.
참고한 자료
자주 묻는 질문
결과가 비어 있어요.
이름의 대소문자, 배열인데 [*]를 빠뜨렸는지, 최상위가 배열이면 $[0]로 시작해야 하는지 확인하세요. $..이름으로 먼저 찾아보면 경로를 알 수 있어요.
jq 문법도 되나요?
아니요. jq(.store.book[] | .title)는 다른 언어예요. 같은 결과는 JSONPath로 $.store.book[*].title이에요.
큰 파일도 되나요?
수십 MB까지는 대부분 괜찮아요. 표에는 앞의 500개만 보여 주지만 저장하면 모두 들어가요.
함께 쓰면 좋은 도구
- JSON 정리 (보기 좋게 들여쓰기·검증·압축)JSON을 보기 좋게 들여쓰기, 오류 위치 표시, 한 줄 압축, 키 정렬, 문자열 이스케이프
- JSON → 타입 변환기 (TypeScript·Go·Python·Java·JSON Schema)API 응답 JSON을 붙여넣으면 TypeScript interface, Go struct, 파이썬 dataclass·Pydantic, 자바 record, JSON Schema를 자동으로 만들기
- JSON 비교 (두 JSON 차이·JSON Patch 만들기)두 JSON의 추가·삭제·바뀐 값을 경로별로 보여 주고, 키 순서·들여쓰기 차이는 무시. 차이를 JSON Patch(RFC 6902)·Merge Patch(RFC 7386)로 저장
- JSON·YAML·TOML·CSV 변환기 (설정 파일·데이터 형식 바꾸기)JSON, YAML, TOML, CSV(TSV) 사이를 서로 바꾸고, 형식 오류 위치를 알려 주며, 결과를 파일로 저장
- 정규식 테스트 (정규표현식 매칭 확인)패턴과 플래그로 일치하는 부분을 강조 표시, 그룹 값 표, 바꾸기 미리보기, 자주 쓰는 패턴
- Base64 인코딩·디코딩 (글자·파일 ↔ Base64)글자(한글 UTF-8)를 Base64로, Base64를 글자로, 파일·이미지를 data URI로, Base64를 파일로 저장