코딩마을방범대

SpringBoot에서 JSON 활용하기 본문

💡 백엔드/Java

SpringBoot에서 JSON 활용하기

신짱구 5세 2023. 5. 25. 14:09
728x90

 

 

JAVA를 이용한 JSON 데이터 파싱 방법

 

json 데이터를 활용할 일이 매우 많은데, API에서는 객체로 바로 받아올 수 있지만

json 문자열로 받아와서 사용해야 하는 경우도 많다.

 

이럴 경우 json 데이터를 여러 방면으로 사용할 수 있는데, 아래에서 확인해보자!

 

 

 


 

 

 

 

 

JSON 객체와 문자열

 

우선 json 객체를 사용하려면 의존성 추가가 필요하다

 

build.gradle

// https://mvnrepository.com/artifact/org.json/json
implementation group: 'org.json', name: 'json', version: '20230227'

 

 


 

 

문자열 -> JSON 객체 ( str to json )

 

Object 로 가져오기

JSONObject jObject = new JSONObject(jsonStr);

 

 

 

Object List 로 가져오기

Object 에서 가져와야함

// {
//   "number": [
//           {"detCode": "123"},{"detCode": "222"},{"detCode": "333"}
//       ]
//  }
JSONObject jObject = new JSONObject(jsonStr);
JSONArray arr = jObject.getJSONArray("number");

 

 

put을 통해 JSON 객체의 데이터 수정 가능

arr.getJSONObject(0).put("detCode","수정!");

 

 


 

 

JSON 객체 -> 문자열 ( json to str )

String jsonString = jObject.toString();

 

 

 

 


 

 

 

 

문자열과 Map

 

문자열 -> Map ( str to map )

ObjectMapper objectMapper = new ObjectMapper();
TypeReference<Map<String, Object>> typeReference = new TypeReference<Map<String,Object>>() {};
    
Map<String, Object> jsonMap = objectMapper.readValue(json, typeReference);

 

 


 

Map -> 문자열 ( map to str )

ObjectMapper mapper = new ObjectMapper();
    
String jsonStr = mapper.writeValueAsString(jsonMap);

 

 

 


 

 

 

 

Object와 문자열

 

문자열 -> Object ( str to Object )

ObjectMapper mapper = new ObjectMapper();
    
User user = mapper.readValue(jsonStr, User.class);

 

 


 

Object -> 문자열 ( Object to str )

ObjectMapper mapper = new ObjectMapper();
    
String jsonStr = mapper.writeValueAsString(user);

 

 

 

 

 


 

 

 

 

 

💡 TIPS!

 

 

1. Entity의 @GeneratedValue(strategy = GenerationType.IDENTITY)

GenerationType은 DB 툴에 따라 값이 다르며, 설정 시 Auto_Increment가 적용된다.

 

 


 

 

2. 문자열 거꾸로 뒤집기

java.lang.StringBuffer 클래스의 reverse() 메소드를 사용

StringBuffer sb = new StringBuffer(str);
String reverse = sb.reverse().toString()

 

 


 

 

3. HashMap 초기값 세팅 방법

 

Java8 버전 이하일 경우

Map<String, Object> map = new HashMap<>() {{
  put("name", "dbkim");
  put("nickname", "sweetRain");
}};

 

Java9 버전 이상일 경우

Map<String, Object> map = Map.of(
  "name", "dbkim",
  "nickname", "sweetRain"
);

 

 


 

 

4. 데이터 타입 확인 방법

변수명.getClass().getName()

 

 

 

 


참고사이트

Java - JSON을 파싱하는 가장 쉬운 방법

 

 

 

 

 

728x90