문서 작업 가이드
JSONPath로 JSON 응답에서 필요한 값 추출하기
임시 스크립트를 작성하거나 payload를 업로드하지 않고 API 응답에서 ID, 이메일, 금액, 중첩 필드를 JSONPath로 추출합니다.
작성 및 검수 SimpleWebUtils게시일: 검토일:
이 작업 흐름을 검증한 방법
JSONPath 테스터 - JSON 값과 경로 추출 검토에서는 “API 응답에서 사용자 이메일과 주문 ID 추출”에 표시된 원본을 보존했습니다. “실제 JSON 응답 붙여 넣기”, “다음 작업으로 값 전달” 단계를 완료한 뒤 가능한 값은 그대로 대조했습니다. 연결된 실패 증거는 “JSON 문법 확인을 건너뜀”, “재귀 선택자를 너무 일찍 사용” 항목별로 확인했습니다.
선택한 경로는 dev@example.com과 주문 ID 두 개를 반환했고, 정규화된 구체 경로는 관련 없는 total을 노출하지 않고 두 배열 원소를 가리켰습니다. wildcard 결과는 원본 배열 순서를 유지했고, 잘못된 JSON과 없는 필드는 정상적인 빈 문자열과 구분됐습니다.
문제 상황
큰 API 응답에서 필요한 값은 루트 아래 여러 단계에 있거나 배열의 모든 항목에 반복됩니다. 한 필드는 눈으로 찾을 수 있어도 모든 주문 ID, 사용자 이메일, 조건에 맞는 금액을 반복해서 복사하면 누락과 잘못된 선택이 생기기 쉽습니다.
공식 출처와 표준
다음 공식 문서는 이 작업 흐름에서 다루는 형식과 보안 경계의 기준입니다. 도구별 실행 검증은 위에 별도로 기록합니다.
- RFC 8259: The JavaScript Object Notation (JSON) Data Interchange Format
RFC Editor / IETF
- RFC 9535: JSONPath: Query Expressions for JSON
RFC Editor / IETF
이럴 때 사용하세요
- API 응답의 사용자, 주문, 상품, 이벤트 객체에서 한 필드를 빠르게 찾아야 할 때
- QA 기록에 큰 payload 화면 캡처 대신 다시 실행할 수 있는 표현식이 필요할 때
- 스프레드시트나 이슈에 전체 응답이 아니라 선택한 값만 전달해야 할 때
- 모니터링, 테스트, 문서에 넣기 전에 JSONPath 표현식 결과를 검증해야 할 때
단계
- 1단계
응답을 유효한 JSON으로 준비
한 줄로 압축된 응답은 JSON Formatter로 읽기 쉽게 만들고, 쉼표나 따옴표가 깨졌을 가능성이 있으면 JSON Validator로 오류 위치를 먼저 확인합니다.
- 2단계
실제 JSON 응답 붙여 넣기
DevTools, curl, API 클라이언트, 로그에서 응답 본문을 복사해 JSONPath Tester에 넣습니다. 결과를 공유할 예정이면 토큰과 사용자 식별자를 미리 가리세요.
- 3단계
목적에 맞는 좁은 표현식 작성
$.user.email은 값 하나, $.orders[*].id는 배열의 모든 ID, $.orders[?(@.total >= 20)].id는 조건에 맞는 주문만 선택합니다. 처음부터 $..id처럼 넓게 찾지 마세요.
- 4단계
값과 원본 경로 함께 검토
추출 값뿐 아니라 $['orders'][0]['id'] 같은 정규화 경로도 확인합니다. 같은 이름의 필드가 다른 객체에 있을 때 의도한 위치가 선택됐는지 경로가 알려줍니다.
- 5단계
다음 작업으로 값 전달
여러 결과는 유효한 JSON 배열로 복사됩니다. 표 형태 검토가 필요하면 JSON to CSV로 넘기고, 반복 점검이 목적이면 표현식과 예시 결과를 디버깅 기록에 함께 보관합니다.
예시
API 응답에서 사용자 이메일과 주문 ID 추출
입력
{
"user": { "id": 42, "email": "dev@example.com" },
"orders": [
{ "id": "ord_1001", "total": 49.5 },
{ "id": "ord_1002", "total": 19.0 }
]
}출력
$.user.email -> dev@example.com
$.orders[*].id -> ord_1001, ord_1002
정규화 경로: $['user']['email'], $['orders'][0]['id'], $['orders'][1]['id']흔한 실수
JSON 문법 확인을 건너뜀
쉼표나 따옴표 하나가 깨지면 올바른 JSONPath도 실패한 것처럼 보입니다. 표현식을 바꾸기 전에 payload의 오류 행과 열부터 수정하세요.
재귀 선택자를 너무 일찍 사용
$..id는 사용자 ID, 주문 ID, 다른 식별자를 모두 선택할 수 있습니다. 구체적인 경로로 시작하고 구조가 일정하지 않을 때만 재귀 탐색을 사용하세요.
추출한 민감 값을 그대로 공유
평가는 브라우저 안에서 실행되지만 복사한 결과에는 이메일, 토큰, 계정 ID가 남을 수 있습니다. 이슈나 문서에 붙이기 전에 다시 가리세요.
자주 묻는 질문
JSONPath는 어떤 작업에 유용한가요?
일회성 스크립트 없이 중첩 JSON의 필드를 선택할 때 유용합니다. API 응답, 구조화 로그, 테스트 fixture, 문서 예시를 반복해서 확인하는 작업에 적합합니다.
배열에서도 값을 추출할 수 있나요?
네. $.orders[0].id처럼 인덱스로 한 항목을 고르거나 $.orders[*].id로 모든 항목의 같은 필드를 선택할 수 있습니다. 필터로 조건에 맞는 항목만 고르는 것도 가능합니다.
JSON 포맷 전과 후 중 언제 JSONPath를 사용해야 하나요?
응답이 압축됐거나 유효하지 않을 수 있으면 먼저 JSON Formatter나 JSON Validator로 구조와 문법을 확인하세요. 그 다음 JSONPath Tester에서 필요한 필드만 추출하면 됩니다.