차근차근/이것저것

[Groovy]json 만들기

예쁜꽃이피었으면 2014. 9. 2. 14:12

http://entireboy.egloos.com/4748169



- 함께 역인 글 : [Groovy] json 파싱하기


말이 필요 없음
예제가 다 말해줌 ㅋ

def json = new groovy.json.JsonBuilder()

json.html {
    header {
        title 'Login'
    }
    body {
        h1 'Hello world'
        div {
            p ({
                label ('ID')
                input 'id'
            },
            {
                label 'Password'
                input 'pw'
            })
            button 'Login', 'Exit'
        }
    }
}

def prettyJson = groovy.json.JsonOutput.prettyPrint(json.toString())
assert prettyJson == '''{
    "html": {
        "header": {
            "title": "Login"
        },
        "body": {
            "h1": "Hello world",
            "div": {
                "p": [
                    {
                        "label": "ID",
                        "input": "id"
                    },
                    {
                        "label": "Password",
                        "input": "pw"
                    }
                ],
                "button": [
                    "Login",
                    "Exit"
                ]
            }
        }
    }
}'''



JsonBuilder라는 녀석이 json을 만들기 쉽게 구성해 준다.
한 줄에 key와 value를 구분해 적어주고, 여러 자식이 있는 경우 closure로 만들어 주면 된다. (header와 body를 가진 html 처럼 closure로 묶는다) "button"처럼 배열을 넣고 싶으면 콤마(,)로 구분해 준다. "Label ('ID')"처럼 괄호로 묶을 수 있다. "p"처럼 여러줄로 나뉜 경우도 괄호로 묶으면 하나의 value로 인식하게 할 수 있다.

그리고 JsonOutput을 사용하면 생성된 json을 이쁘게 출력할 수 있다.


- 참고
Groovy Goodness: Build JSON with JsonBuilder and Pretty Print JSON Text

반응형