JsonPath

Bong2·2022년 4월 9일
0

JsonPath

json 데이터를 쉽게 처리할 수 있도록 표현식 제공
표현식 문법 : https://github.com/json-path/JsonPath

  • maven
<dependency>
    <groupId>com.jayway.jsonpath</groupId>
    <artifactId>json-path</artifactId>
    <version>2.2.0</version>
</dependency>
  • springboot에는 starter-test 의존성 에 포함되어 있다.

표현법

Dot 표현법

$.data.user[0].name

Bracket 표현법

$['data']['user'][0]['name']

연산자

연산자설명
$루트 노드로 모든 Path 표현식은 이 기호로 시작된다.
@처리되고 있는 현재 노드를 나타내고 필터 조건자에서 사용된다.
*와일드카드로 모든 요소와 매칭이 된다
.Dot 표현식의 자식노드
[start:end]배열 slice 연산자
[?()]필터 표현식으로 필터 조건자가 참인 경우에 매칭되는 모든 요소를 만을 처리한다 ex. book[?(@.price == 49.99)]

테스트 코드에 적용

@Test
   @DisplayName("유저 조회 컨트롤러 테스트")
   public void retrieveUser() throws Exception{

       //given
       given(userService.findUser(1L)).willReturn(new UserRep("홍길동","1234"));

       //when
       mvc.perform(
                   get("/api/retrieve/1")
                   .contentType(APPLICATION_JSON)
                   .accept(APPLICATION_JSON)
               )
               .andDo(print())
               //then
 				//값이 같은지의 여부를 판단.
               .andExpect(jsonPath("$.name").value("홍길동"))
               .andExpect(jsonPath("$.password").value("1234"))
               .andExpect(status().isOk());
   }
profile
자바 백엔드 개발자로 성장하자

0개의 댓글