반응형
DB column에 json형태로 저장한 값을 가져와
jsonNode로 담아 원하는 Key의 데이터를 가져올 때
빠르게 사용이 가능하다.
JsonObject로 시도를 해보았지만,
JsonNode가 좀 더 편리한 면이 많았다.
Dept에 따른 구현을 간결하게 하기 위해
사용하기에 적합한 module이다.
1. JsonNode -> Object
@Autowired
ObjectMapper objMapper;
private String parseStringResult(String conditionJson) thorws JsonMappingException, JsonProcessingException, net.minidev.json.parser.ParseException {
StringBuilder results = new StringBuilder();
JsonNode arrayNode = objMapper.readTree(conditionJson); //DB에 저장된 Json (String값)을 JsonNode로 변환
List<Object> objList = objMapper.treeToValue(arrayNode.path("key값"), List.class); // 가지고 오고 싶은 Key 값의 데이터를 Type에 맞게 옮기기!
...
String result = new String(results);
return result;
}
2. Object -> JsonNode
@Autowired
ObjectMapper objMapper;
private String parseStringResult(String conditionJson) thorws JsonMappingException, JsonProcessingException, net.minidev.json.parser.ParseException {
StringBuilder results = new StringBuilder();
JsonNode arrayNode = objMapper.readTree(conditionJson); //DB에 저장된 Json (String값)을 JsonNode로 변환
List<Object> objList = objMapper.treeToValue(arrayNode.path("key값"), List.class); // 가지고 오고 싶은 Key 값의 데이터를 Type에 맞게 옮기기!
...
for (Object obj : objList) {
if(idx == 0) {
Map<String, Object> map = objMapper.convertValue(obj, Map.class); // Object를 Map Type(key-value)으로 변환!
...
} else if (idx < arrayNode.size()) { // JsonNode 변환시, Object Size 체크 가능!
JsonNode jnd = objMapper.convertValue(obj, JsonNode.class); // Object -> JsonNode로 변환!
...
}
...
}
...
String result = new String(results);
return result;
}
** Object --> Another Type 으로 변환시킬 때,
ObjectMapper 를 꼭 등록하고 사용해야 한다.
반응형
'WEB ( Back, Front) > Java' 카테고리의 다른 글
JAVA 프로그래밍: 시작부터 실전까지의 스토리 chapter 1 (0) | 2023.05.17 |
---|---|
Map vs List 차이 (0) | 2020.09.15 |
파일 업로드 주의 사항 (0) | 2020.08.06 |
Java #1 (0) | 2019.12.27 |
댓글