REST API를 Map 형태의 파라미터를 JSON으로 변환해 호출하는 방법

REST API를 Map 형태의 파라미터를 JSON으로 변환해 호출하는 샘플 코드는 아래와 같습니다.

Java: Map을 JSON으로 변환해 POST 요청

Java 11+ 환경에서는 HttpClient와 Jackson의 ObjectMapper로 Map 객체를 JSON으로 변환 후 REST API에 전송할 수 있습니다.​

java
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
import java.util.Map;
import com.fasterxml.jackson.databind.ObjectMapper;

public class RestApiClient {
public static void main(String[] args) throws Exception {
Map<String, Object> params = Map.of("param1", "value1", "param2", "value2");
ObjectMapper objectMapper = new ObjectMapper();
String jsonParams = objectMapper.writeValueAsString(params);

HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create("https://api.example.com/postData"))
.POST(HttpRequest.BodyPublishers.ofString(jsonParams))
.header("Content-Type", "application/json")
.timeout(Duration.ofSeconds(10))
.build();

HttpClient client = HttpClient.newHttpClient();
HttpResponse<String> response = client.send(request, HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}

  • Jackson 라이브러리 필요 (com.fasterxml.jackson.core:jackson-databind).​

Python: dict(Map) 객체를 JSON으로 POST 요청

Python은 requests 라이브러리에서 dict 객체를 json 파라미터로 넘겨주면 자동으로 JSON 직렬화하여 전송합니다.​

python
import requests

url = "https://api.example.com/postData"
params = {
"param1": "value1",
"param2": "value2"
}

response = requests.post(url, json=params)
print(response.text)

  • 별도의 JSON 변환 없이 json=params 사용시 자동 처리됨.​

핵심 요약

REST API를 Map 형태의 파라미터를 JSON으로 변환해 호출하는 방법

  • Java: Map → ObjectMapper.writeValueAsString → POST body.​

  • Python: dict 직접 json= 파라미터로 POST 전달.​

  • 반드시 Content-Type: application/json 헤더를 추가해야 함.​

이 방식으로 원하는 Map/dict를 JSON 변환 후 REST API에 안전하게 전달할 수 있습니다니다.