빠르고 안전한 JSONPath 테스터
크거나 복잡하게 중첩된 JSON 데이터에서 원하는 정보만 추출하는 작업은 꽤 번거로울 수 있습니다. 이 JSONPath 테스터는 쿼리를 작성하고 테스트하며 디버깅할 수 있는 실시간 환경을 제공합니다. 표현식을 입력하는 즉시 JSON 데이터를 평가하여, 추출된 값과 해당 값이 위치한 정확한 경로를 함께 보여줍니다.
이 도구는 100% 클라이언트 단에서 작동하는 JSONPath 평가기(evaluator)로, 모든 데이터 처리가 사용자의 기기에서 로컬로 이루어집니다. JSON 데이터는 절대 서버로 전송되지 않습니다. 따라서 데이터 유출이나 개인정보 침해 걱정 없이 실제 서비스의 API 응답 데이터, 데이터베이스 추출본, 민감한 설정 파일 등을 안심하고 붙여넣어 사용할 수 있습니다.
개발자를 위한 핵심 기능
- 실시간 평가: JSON 데이터나 쿼리를 수정하는 즉시 결과가 업데이트됩니다. 실행 버튼을 누르거나 서버 응답을 기다릴 필요가 없습니다.
- 안전한 파싱: 안전한 평가 엔진(
eval: 'safe')을 사용하여 쿼리를 처리하므로, 복잡한 필터 표현식을 완벽하게 지원하면서도 악의적인 코드 실행을 원천 차단합니다. - 경로 추출: 일치하는 값을 보여줄 뿐만 아니라, 검색된 모든 항목의 절대 경로를 함께 생성합니다. 이는 나중에 특정 노드를 프로그래밍 방식으로 업데이트해야 할 때 매우 유용합니다.
- 기본 제공 예제: JSONPath 문법이 처음이라면, 샘플 서점 데이터를 불러온 뒤 미리 작성된 여러 표현식을 클릭해 보며 다양한 연산자의 작동 방식을 쉽게 익힐 수 있습니다.
JSONPath 쿼리 작성 방법
JSONPath는 JSON 객체와 배열을 탐색할 때 고유한 문법을 사용합니다. JSONPath 표현식을 테스트하려면 먼저 다음의 기본 연산자를 이해하는 것이 좋습니다.
$는 루트 객체나 배열을 의미합니다. 모든 절대 JSONPath 표현식은 이 기호로 시작합니다.@는 현재 처리 중인 노드를 의미합니다. 주로 필터 표현식 내에서 사용됩니다..또는[]는 하위 속성을 선택할 때 사용하는 연산자입니다. 예를 들어$.store.book과$['store']['book']은 동일한 결과를 반환합니다...는 재귀 탐색 연산자입니다. 중첩 깊이와 상관없이 JSON 트리 전체에서 특정 키를 검색합니다(예:$..price는 모든 가격 값을 찾습니다).*는 객체나 배열의 모든 요소와 일치하는 와일드카드입니다. 예를 들어$.store.*는 store 객체 바로 아래에 있는 모든 요소를 선택합니다.[?()]는 필터 표현식을 적용합니다. 괄호 안에 표준 논리 연산자를 사용할 수 있습니다. 예를 들어$..book[?(@.author == 'Nigel Rees')]는 해당 저자가 쓴 모든 책을 찾습니다.[start:end:step]은 파이썬(Python)과 유사하게 배열을 슬라이싱할 때 사용합니다.$.store.book[-1:]은 배열의 마지막 책을 선택합니다.
주요 활용 사례
API 개발 및 디버깅. 최신 REST 및 GraphQL API는 종종 방대한 JSON 페이로드를 반환합니다. 응답을 파싱하고 검사하기 위해 임시 코드를 작성하는 대신, 이 JSONPath 온라인 도구에 페이로드를 붙여넣어 데이터 구조가 올바른지, 쿼리가 올바른 필드를 추출하는지 빠르게 확인할 수 있습니다.
자동화 테스트. 통합 테스트나 E2E 테스트(Postman, RestAssured, Playwright 등의 도구 사용)를 작성할 때, JSON 응답에 특정 값이 존재하는지 검증해야 하는 경우가 많습니다. JSONPath 테스터를 사용하면 테스트 코드에 하드코딩하기 전에 쿼리 문자열을 완벽하게 다듬을 수 있습니다.
데이터 추출 및 변환. 데이터를 마이그레이션하거나 ETL(추출, 변환, 적재) 파이프라인을 구축할 때 특정 배열이나 객체만 분리해야 하는 경우가 자주 발생합니다. 이 도구를 사용하면 대상 데이터를 추출하는 데 필요한 정확한 경로를 파악할 수 있습니다. 원본 데이터가 XML인 경우 먼저 XML to JSON 변환기를 사용할 수 있으며, 데이터를 검사하기 전에 minified 데이터를 보기 좋게 정렬해야 한다면 JSON Formatter가 유용합니다. 또한 JSON Compare 도구를 사용하여 변환 전후의 데이터가 어떻게 달라졌는지 확인할 수 있습니다.