반응형
■ 목표
- Spring 안에서 객체를 Json String으로 변환.
- 변환된 Json String을 다시 객체로 변환.
- 객체는 List와 다른 객체, 인터페이스로 이루어진 복잡한 객체이다.
■ 예제
아래의 간단한 클래스들을 가지고 테스트.
Group 클래스의 객체를 생성 후 json String으로 변환, 다시 Group객체로 변환한다.
Group은 User인터페이스를 멤버로 가지고 있다.
public class Group {
private User master;
private List<User> userList;
//json변환 시 사용할 클래스맵 >> userList의 클래스가 SimpleUser임을 알려준다.
public static Map getClassMap() {
Map classMap = new HashMap();
classMap.put("userList", SimpleUser.class);
return classMap;
}
}
public interface User {
}
public class SimpleUser implements User {
private String id;
private String email;
private String password;
private String name;
}
■ 예제
아래의 간단한 클래스들을 가지고 테스트.
Group 클래스의 객체를 생성 후 json String으로 변환, 다시 Group객체로 변환한다.
* JSON String으로 변환
public String convertObjectToJsonString(Group group) {
ObjectMapper mapper = new ObjectMapper();
String jsonStr = null;
try {
jsonStr = mapper.writeValueAsString(group);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return jsonStr;
}
* 다시 객체로 변환
public Group convertJsonStringToObject(String jsonStr) {
JSONObject jsonObj = (JSONObject) JSONSerializer.toJSON(jsonStr);
Group group = (Group) JSONObject.toBean(jsonObj, Group.class, Group.getClassMap());
return group;
}
반응형
'Back End > Spring' 카테고리의 다른 글
[Spring] 서비스 시작 시 특정 로직 수행 (0) | 2021.11.01 |
---|---|
[Spring] java.lang.IllegalArgumentException: An invalid character [32] was present in the Cookie value (쿠키 에러) (0) | 2021.11.01 |
[Spring] @Transactional 이 동작하지 않을 때 (0) | 2021.09.01 |
[Spring] Controller 에서 HTML텍스트를 HTML페이지로 리턴하기. (0) | 2021.08.28 |
[Spring] request 가 동시에 많이 들어오는 상황에 대한 고찰(파일 업로드) (0) | 2021.08.26 |