Groovy Unmarshalling Json to a specific Object

If you have a simple POJO (Plain Old Java Object) or POGO (Plain Old Groovy Object), you can use Groovy's default Map based constructor to convert the JSON string to an Object type.

  
  
package com.example.groovy

import groovy.json.JsonBuilder  
import groovy.json.JsonSlurper  
import groovy.transform.ToString

/**
 * Created by rhasija on 1/15/16.
 */
class JsonToObject {

    public static void main(String[] args) {
        // Person object
        def person = new Person(firstName: "John", lastName: "Doe")
        // Json String
        def personJSON = new JsonBuilder(person).toPrettyString()
        // Json String to Map
        def personMap = new JsonSlurper().parseText(personJSON)
        // using Map to convert to Person object type
        def newPerson = new Person(personMap)

        println(person)
        println(newPerson)

        assert newPerson.firstName.equals(person.firstName)
        assert newPerson.lastName.equals(person.lastName)
    }
}

@ToString
class Person {  
    String firstName
    String lastName
}

Please let me know if you found this helpful. Thanks!