Back End/Spring
[Spring] 자바 객체를 json String으로 변환, json String을 다시 객체로 변환 (net.sf.json)
염소
2021. 10. 4. 13:53
반응형
■ 목표
- 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;
}
반응형