Is there a way to remove the class field in a JSON converter?
Example:
import testproject.*
import grails.converters.*
emp = new Employee()
emp.lastName = "Bar"
emp as JSON
as a string is
{"class":"testproject.Employee","id":null,"lastName":"Bar"}
I'd prefer
{"id":null,"lastName":"Bar"}
Is there a way to add one more line of code at the end to remove the class field?
Here is yet one way to do it. I've added a next code to the domain class:
static {
grails.converters.JSON.registerObjectMarshaller(Employee) {
return it.properties.findAll {k,v -> k != 'class'}
}
}
But as I found if you have used Groovy @ToString class annotation when you also must add 'class' to excludes parameter, e.g.:
@ToString(includeNames = true, includeFields = true, excludes = "metaClass,class")