Java에서 Object를 Json String으로 보내고 받는거
나의 경우 Server A <-> Server B간에 데이터를 주고받기 위해서 쓴다.
전송하는 형태는 RestTemplate로.
우선 보낼때.. Class A를 Json으로 보내보자.
//보낼 클래스 선언
public class MyClass{
//declare members.
}
public class SenderClass{
//RestTemplate. 생성을 해도 되지만, Factory에서 받아오도록 구현.
private RestTemplate restTemplate;
//보내는 곳.
public void SendData(MyClass mc, String url){
//HttpHeader만들기
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
//Json String으로 변환
ObjectMapper objectMapper = new ObjectMapper();
String sendData = objectMapper.writeValueAsString(mc);
ResponseEntity<String> resultEntity =
this.restTemplate.exchange(url, HttpMethod.POST new HttpEntity<>(sendData, headers), String.class);
}
}
대략 저렇게 ObjectMapper를 이용하여 객체를 Json String으로 변환 가능하다.
자.. 이제 받아오는 곳은?
@RequestMapping(value = "/myMethod", method = RequestMethod.POST)
public String myApi(@RequestBody String payload) throws Exception{
ObjectMapper mapper = new ObjectMapper();
MyClass obj = mapper.readValue(payload, MyClass.class);
return "success";
}
저렇게 받아오면 Json String에서 MyClass로 변환 가능하다.
반응형
댓글