그루비는 자바와 참 많이 닮았지만 또 다르다.

스크립트라 워낙 간단하고 쉬워서 오히려 자바와 같이 생각했다가 헤맨 적도 많이 있다.

 

오늘은 그루비로 간단하게 타입 변경을 하는 것을 알아보고자 한다.

 

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")

+ Recent posts