문서 작업 가이드

JSONPath로 JSON 응답에서 필요한 값 추출하기

임시 스크립트를 작성하거나 payload를 업로드하지 않고 API 응답에서 ID, 이메일, 금액, 중첩 필드를 JSONPath로 추출합니다.

작성 및 검수 게시일: 검토일:

이 작업 흐름을 검증한 방법

JSONPath 테스터 - JSON 값과 경로 추출 검토에서는 “API 응답에서 사용자 이메일과 주문 ID 추출”에 표시된 원본을 보존했습니다. “실제 JSON 응답 붙여 넣기”, “다음 작업으로 값 전달” 단계를 완료한 뒤 가능한 값은 그대로 대조했습니다. 연결된 실패 증거는 “JSON 문법 확인을 건너뜀”, “재귀 선택자를 너무 일찍 사용” 항목별로 확인했습니다.

선택한 경로는 dev@example.com과 주문 ID 두 개를 반환했고, 정규화된 구체 경로는 관련 없는 total을 노출하지 않고 두 배열 원소를 가리켰습니다. wildcard 결과는 원본 배열 순서를 유지했고, 잘못된 JSON과 없는 필드는 정상적인 빈 문자열과 구분됐습니다.

문제 상황

큰 API 응답에서 필요한 값은 루트 아래 여러 단계에 있거나 배열의 모든 항목에 반복됩니다. 한 필드는 눈으로 찾을 수 있어도 모든 주문 ID, 사용자 이메일, 조건에 맞는 금액을 반복해서 복사하면 누락과 잘못된 선택이 생기기 쉽습니다.

공식 출처와 표준

다음 공식 문서는 이 작업 흐름에서 다루는 형식과 보안 경계의 기준입니다. 도구별 실행 검증은 위에 별도로 기록합니다.

이럴 때 사용하세요

  • API 응답의 사용자, 주문, 상품, 이벤트 객체에서 한 필드를 빠르게 찾아야 할 때
  • QA 기록에 큰 payload 화면 캡처 대신 다시 실행할 수 있는 표현식이 필요할 때
  • 스프레드시트나 이슈에 전체 응답이 아니라 선택한 값만 전달해야 할 때
  • 모니터링, 테스트, 문서에 넣기 전에 JSONPath 표현식 결과를 검증해야 할 때

단계

  1. 1단계

    응답을 유효한 JSON으로 준비

    한 줄로 압축된 응답은 JSON Formatter로 읽기 쉽게 만들고, 쉼표나 따옴표가 깨졌을 가능성이 있으면 JSON Validator로 오류 위치를 먼저 확인합니다.

  2. 2단계

    실제 JSON 응답 붙여 넣기

    DevTools, curl, API 클라이언트, 로그에서 응답 본문을 복사해 JSONPath Tester에 넣습니다. 결과를 공유할 예정이면 토큰과 사용자 식별자를 미리 가리세요.

  3. 3단계

    목적에 맞는 좁은 표현식 작성

    $.user.email은 값 하나, $.orders[*].id는 배열의 모든 ID, $.orders[?(@.total >= 20)].id는 조건에 맞는 주문만 선택합니다. 처음부터 $..id처럼 넓게 찾지 마세요.

  4. 4단계

    값과 원본 경로 함께 검토

    추출 값뿐 아니라 $['orders'][0]['id'] 같은 정규화 경로도 확인합니다. 같은 이름의 필드가 다른 객체에 있을 때 의도한 위치가 선택됐는지 경로가 알려줍니다.

  5. 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에서 필요한 필드만 추출하면 됩니다.