groovy поддерживает простое сопоставление следующим образом:
import groovy.json.JsonSlurper
import groovy.json.JsonOutput
class A{
int id
String name
}
Map m = new JsonSlurper().parseText('{"id":123,"name":"Joe"}')
A a = m as A
assert a.id==123
assert a.name=="Joe"
def json = JsonOutput.toJson(a)
assert json == '{"id":123,"name":"Joe"}'
для подхода маршалинга / демаршаллинга Я предпочитаю использовать библиотеку Gson:
@Grab(group='com.google.code.gson', module='gson', version='2.8.5')
import com.google.gson.Gson
class A{
int id
String name
}
A a=new Gson().fromJson('{"id":123,"name":"Joe"}', A.class)
assert a.id==123
assert a.name=="Joe"
def json = new Gson().toJson(a)
assert json == '{"id":123,"name":"Joe"}'