0

In my grails 3 app (I'm using grails 3.2.4), I have an object type which I want to be serialized as a string, for any Domain object that uses it:

class MyDomain1 {
    CustomId id
}

class MyDomain2 {
    CustomId id
}

I want to create a view that serializes CustomId as a string, rather than an object:

//instance of MyDomain1, in JSON format:
{
    "id": "123"
}

How can I do this without customizing the view for every object that uses CustomId?

Vadim Kotov
  • 8,084
  • 8
  • 48
  • 62
RMorrisey
  • 7,637
  • 9
  • 53
  • 71

1 Answers1

1

Json views 1.2 supports a converter API that can do what you want

http://views.grails.org/latest/#_custom_converters

James Kleeh
  • 12,094
  • 5
  • 34
  • 61
  • Thanks! For posterity, some notes on compatibility issues that James helped me with: To update the views plugin, set the version for "views-gradle" in *buildscript.dependencies* and "views-json*" in *dependencies*. This views plugin version also requires GORM version 6.1.0.RELEASE: add a property called gormVersion: "gormVersion=6.1.0.RELEASE" in gradle.properties. – RMorrisey Mar 27 '17 at 20:10
  • It does not require GORM 6.1 under most conditions – James Kleeh Mar 27 '17 at 21:27