json formatting

I'm really new to rendering formats with rails and would appreciate a little help with a json issue.

I have created a booking model in which I would like to sync with a jquery calendar called "full calendar" through json. They have an example json script output with the following:

[    {       "id":1,       "title":"Event1",       "start":"2009-05-10",    },    {       "id":2,       "title":"Event2",       "start":"2009-05-20",       "end":"2009-05-22",       "url":"http:\/\/yahoo.com\/"    } ]

When using the json format in rails I get:

[    {       "booking":{          "updated_at":"2009-05-01T15:42:44Z",          "title":"Booking",          "property_id":1,          "id":1,          "end":"2009-05-19",          "start":"2009-05-06",          "created_at":"2009-05-01T15:42:44Z"       }    },    {       "booking":{          "updated_at":"2009-05-06T09:09:48Z",          "title":"Booking",          "property_id":1,          "id":2,          "end":"2009-08-26",          "start":"2009-08-19",          "created_at":"2009-05-06T09:09:48Z"       }    } ]

How do I change how the json format is rendered within rails 2. I need to get rid of "booking", "updated_at", property_id" and created_at".

Thanks for any help.

I think you can do something like this...

@booking.to_json(:only=>["title","id","start","end","url"])

You can avoid getting the table name - which I take it is "booking" in your case - by telling ActiveRecord not to include that with the following code

ActiveRecord::Base.include_root_in_json = false

You can filter the fields you want in your database query and then to_json on the query result should give you what you need without the table name.

-S

you can use except option in to_json Example :   @booking.to_json(:except=>[:updated_at,:property_id,:created_at] and to get rid of booking. From rails 2.1+ you should configure in config/initializers/new_rails_defaults.rb file :   ActiveRecord::Base.include_root_in_json = false