자바는 굉장히 오래된 언어이다 보니 잡스러운 것도 많다..
json 예제도 찾아보면 왜케 많은지...ㅠ
그래서 하나 정해놓고 이거 쓰자.
// Json Parsing
...
import org.json.simple.JSONObject;
import org.json.simple.parser.JSONParser;
...
@Controller
public class SampleController{
...
@ResponseBody
@PostMapping("/data")
public String intputData(@RequestBody String data) throws Exception {
Map map = new HashMap();
JSONParser parser = new JSONParser();
// JSONObject는 HashMap을 상속받았다.
//JSONObject jsonObj = (JSONObject) parser.parse(data);
//for(Object key : jsonObj.keySet()) {
// map.put(key, jsonObj.get(key));
//}
HashMap jsonObj = (HashMap) parser.parse(data); // 업캐스팅해서 사용해도 상관없음
System.out.println(data +"\n\n"+jsonObj.toString());
return "success !!!!";
}
...
}
data 를 받으면 parser를 통해서 파싱하고 JSONObject에 담는다.
그러면 key, value를 가진 JSONObject가 된다.
JSONObject는 클래스를 살펴보니 HashMap을 상속받은 객체이다. 사실 바꿔주지 않아도 상관은 없다!!!
인터넷 예제를 살펴보니 이걸 바꿔주는 것들이 많아서 그냥 그런가보다 했는데.. 굳이 바꿔줄 필요가 없었고.. 그냥 캐스팅 해서 써도 문제없겟다 싶다!
만약에 json을 넘기고 싶으면 @ResponseBody가 객체를 자동으로 json을 만들어주니깐 그냥 객체를 리턴하면 된다.
굳이 json을 리턴하고 싶다면 jsonString으로 변환해서 리턴하고 그건 client에서 다시 json객체로 받아서 사용하면 끝!
이참에 내부도 살펴보고 재미있네!
'Java > SpringBoot' 카테고리의 다른 글
스프링 엑셀 업로드 및 데이터 처리 (0) | 2022.07.23 |
---|---|
spring post 예제 url (0) | 2021.05.13 |
filter, interceptor, advice 정리 url (0) | 2021.02.19 |
@RequestParam @PathVariable 차이점 비교 (0) | 2020.05.26 |
java.lang.IllegalStateException: Unable to find a @SpringBootConfiguration, you need to use @ContextConfiguration or @SpringBootTest(classes=...) with your test 테스트 에러 (0) | 2020.05.25 |
댓글