http://www.groovy-tutorial.org/basic-json/#_writing_json
Reading JSON
class Student {
Number id
String name
Map results
}
class ClassReport {
String testScore
String projectScore
String comment
}
import groovy.json.JsonSlurper
import java.nio.file.Paths
JsonSlurper slurper = new JsonSlurper()
def studentList
Paths.get('resources/report.json').withReader { reader ->
studentList = slurper.parse(reader)
}
println studentList.dump()
Writing JSON
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
class Position {
String department, role
}
class StaffMember {
Number id
String name
Position position
def displayNameTag() {
"Staff member: $name [$id]\n${position.role} - ${position.department}"
}
}
def staffList = [
new StaffMember(id: 1234, name: 'Fred Nurk',
position: [ department: 'Accounts', role: 'Manager' ] as Position),
new StaffMember(id: 8673, name: 'Alexa Sample',
position: [ department: 'Accounts', role: 'Manager' ] as Position),
new StaffMember(id: 4568, name: 'Jane Doe',
position: [ department: 'Accounts', role: 'Manager' ] as Position),
new StaffMember(id: 8473, name: 'Ian Random',
position: [ department: 'Accounts', role: 'Manager' ] as Position)
]
//Convert the staffList to JSON using JsonOutput
def json = JsonOutput.toJson(staffList)
println JsonOutput.prettyPrint(json)
//Now read the JSON back in using JsonSlurper
JsonSlurper slurper = new JsonSlurper()
def staffListImport = slurper.parseText(json)
for (person in staffListImport) {
StaffMember staff = person as StaffMember
println staff.displayNameTag()
}
Building JSON
import groovy.json.JsonBuilder
def json = new JsonBuilder()
def staffListExport = json.staff {
'1234' {
id 1234
name 'Fred Nurk'
position (
department: 'Accounts',
role: 'Manager'
)
}
}
println json.toPrettyString()