자바스크립트가 비활성화 되어있습니다.
자바스크립트가 활성화 되어야 콘텐츠가 깨지지 않고 보이게 됩니다.
자바스크립트를 사용할수 있도록 옵션을 변경해 주세요.
- willbsoon

본문 바로가기
Java/SpringBoot

Java RestApi String to JsonObject 예제

by willbsoon 2021. 5. 12.

자바는 굉장히 오래된 언어이다 보니 잡스러운 것도 많다..

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객체로 받아서 사용하면 끝!

 

이참에 내부도 살펴보고 재미있네!

 

 

 

 

 

 

 

댓글