[java] Java Jersey에서 JSON 응답을 처리하는 방법은?

Java Jersey는 RESTful 웹 서비스를 개발하기 위한 프레임워크로, 다양한 데이터 형식을 지원합니다. 이 중에서 JSON 형식의 응답을 처리하는 방법에 대해 알아보겠습니다.

의존성 추가

먼저, 프로젝트에 Jersey와 JSON 지원 라이브러리를 추가해야 합니다. Maven을 사용하는 경우, 아래와 같이 pom.xml 파일에 의존성을 추가합니다.

<dependencies>
    <!-- Jersey -->
    <dependency>
        <groupId>org.glassfish.jersey.containers</groupId>
        <artifactId>jersey-container-servlet</artifactId>
        <version>2.34</version>
    </dependency>

    <!-- JSON 지원 -->
    <dependency>
        <groupId>org.glassfish.jersey.media</groupId>
        <artifactId>jersey-media-json-jackson</artifactId>
        <version>2.34</version>
    </dependency>
</dependencies>

의존성을 추가한 후, Maven이나 Gradle을 사용하여 프로젝트를 빌드해야 합니다.

JSON 응답 처리하기

JSON 응답을 처리하기 위해, Jersey에서 제공하는 @Produces 어노테이션을 사용합니다. 해당 어노테이션을 사용하여 리소스 메소드가 JSON 형식의 응답을 생성한다고 지정할 수 있습니다.

예를 들어, 아래는 /users 경로로 GET 요청을 받고, JSON 형식의 응답을 생성하는 예제입니다.

import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import java.util.ArrayList;
import java.util.List;

@Path("/users")
public class UserResource {

    @GET
    @Produces(MediaType.APPLICATION_JSON)
    public Response getUsers() {
        List<User> users = new ArrayList<>();
        // 사용자 정보 조회 로직

        return Response.ok(users).build();
    }
}

위의 예제에서 @Produces(MediaType.APPLICATION_JSON)/users 경로로 들어오는 GET 요청에 대해 JSON 응답을 생성한다는 것을 의미합니다. Response.ok(users)users 객체를 JSON으로 변환하여 응답으로 보내는 것을 나타냅니다.

테스트하기

위의 예제를 실행하여 JSON 응답이 제대로 처리되는지 테스트할 수 있습니다.

테스트를 위해 다음과 같은 JSON 형식의 응답을 받을 수 있는 클라이언트를 사용하거나, 웹 브라우저를 통해 /users 경로로 접속해보세요.

[
    {
        "id": 1,
        "name": "John Doe"
    },
    {
        "id": 2,
        "name": "Jane Smith"
    }
]

결론

Java Jersey에서 JSON 응답을 처리하는 방법을 알아보았습니다. @Produces 어노테이션을 사용하여 JSON 형식을 생성하고, Response.ok()를 통해 응답을 전송할 수 있습니다. 이를 활용하여 RESTful 웹 서비스에서 JSON 응답을 손쉽게 처리할 수 있습니다.


References