Search code examples
jsongrailsgsonoutputname-conflict

Grails Json Views "model" key conflicts with model keyword


I am using the rest-api profile for a Grails app and have the following in one of my json views (_event.gson):

model {
    Event event
}

json g.render(event, [excludes: ['product']]) {
    product {
        id event.product.id
        name event.product.name
        model event.product.model
    }
}

In short, a Product belongs to an Event. By default, I would get the product key with an id inside it as json. I wanted to add more fields to that.

So I used excludes so I could define the fields that would appear under the embedded json document detailing the product. My goal is to have the following as json:

{
  "id": 123,
  ...,
  "product": {
    "id": 545434,
    "name": "Something Cool",
    "model": "MZX 1234"
  }
}

The last fields -- model -- is not appearing. It seems it is being confused with the model keyword that is used in the very first line of my _event.gson file. Is there any way around this? I tried adding quotes to "model" but it still does not work.


Solution

  • The issue has been reported as a bug: http://github.com/grails/grails-views/issues/45