I spent the last couple of hours on my pet project working with a specific issue. After moving it’s hosting to Google AppEngine the classes have meta data stored in them. I’m not allowed to reflect over the meta data (not sure I want to either). So JSON rendering has to be done on something other than the domain class.

This is the same Issue I posted about in a previous post, about rendering lists as JSON.

Now I’m rendering a single instance of a domain class. Now for the fun part. I can’t render JSON with the following statement.

render [
 id: user.id,
 name: user.name,
 email: user.email,
 password: user.password
 ] as JSON

The above statement wont even compile. I also noticed is that the following will produce a rendered output, that cant be recognized at the client side javascript:

render (
 id: user.id,
 name: user.name,
 email: user.email,
 password: user.password
 ) as JSON

I suspect that the above code will be transformed to a parameter listing for the render as JSON code.

After allot of trying I finally figure out that this works:

def userJson = [
 id: user.id,
 name: user.name,
 email: user.email,
 password: user.password]
 render userJson as JSON

Fun!  :) I can render the variable holding the map, but not the map directly.

Bookmark and Share