그루비는 자바와 참 많이 닮았지만 또 다르다.
스크립트라 워낙 간단하고 쉬워서 오히려 자바와 같이 생각했다가 헤맨 적도 많이 있다.
오늘은 그루비로 간단하게 타입 변경을 하는 것을 알아보고자 한다.
1. String 에서 Map으로 변경하기
import com.fasterxml.jackson.databind.ObjectMapper;
ObjectMapper mapper = new ObjectMapper();
String empStr = "{\"name\":\"홍길동\", \"phone\":\"010-1234-5678\"}";
Map map = mapper.readValue(empStr, Map.class)
log.warn map //결과: {name=홍길동, phone=010-1234-5678}
2. Map에서 String으로 변경하기
Map empMap = new HashMap()
empMap.put("name", "홍길동")
empMap.put("phone", "010-1234-5678")
log.warn empMap //결과 {phone=010-1234-5678, name=홍길동}
String empStr = empMap.toString()
log.warn empStr //결과 [phone:010-1234-5678, name:홍길동]
위 결과를 살펴보면 Map일 때는 중괄호{}로 나오고, String으로 바뀌었을 때는 대괄호[]로 표현되었음이 확인된다.
3. Json String 에서 Map으로 변경하기
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
String jsonString = """
{
"name" : "Gildong",
"pnone" : "010-1234-5678",
"passwordd" : { "value" : "pass" }
}
"""
def json = new JsonSlurper().parseText(jsonString)
def jsonData = new JsonBuilder(json).toPrettyString()
log.warn "json: ${json}"
log.warn "jsonData: ${jsonData}"
/* 결과
json: [name:Gildong, pnone:010-1234-5678, passwordd:[value:pass]]
jsonData: {
"name": "Gildong",
"pnone": "010-1234-5678",
"passwordd": {
"value": "pass"
}
}
*/
4. Json에서 Map으로 변경하기
import com.fasterxml.jackson.databind.ObjectMapper;
import groovy.json.JsonBuilder
import groovy.json.JsonSlurper
String jsonString = """
{
"name" : "Gildong",
"pnone" : "010-1234-5678",
"passwordd" : { "value" : "pass" }
}
"""
def json = new JsonSlurper().parseText(jsonString)
def jsonData = new JsonBuilder(json).toPrettyString()
ObjectMapper mapper = new ObjectMapper()
Map map = mapper.readValue(jsonData.toString(), Map.class)
log.warn map
log.warn map.get("name")
'백엔드' 카테고리의 다른 글
[MySQL] JOIN (INNER, LEFT, RIGHT) (0) | 2022.03.02 |
---|---|
Mysql CAST/CONVERT 문자, 숫자, 날짜 형 변환하기 (0) | 2022.03.02 |
Random() 함수를 이용한 아이디와 한글 이름 생성하기 (0) | 2022.02.24 |
Groovy 시간 Date() 함수 format (0) | 2022.02.23 |
Jira와 크라우드(Crowd) Rest Api 연동 개발 (0) | 2022.02.23 |