to_json returning an incorrect format in rails 2.3.4

It seems to_json is returning an incorrect format.I have a Product
model with id , title, description.
In ProductsController, in index I have

def index
    @products = Product.all

    respond_to do |format|
      format.html # index.html.erb
      format.xml { render :xml =>
@products.to_xml(:procs=>allprocs, :skip_instruct =>
      format.json { render :json =>
{:products=>@products.to_json(:only=>[:id,:title]) } }


It returns the result as

{"products":"[{\"product\":{\"title\":\"Cross Stitch Design\",\"id\":
4}},{\"product\":{\"title\":\"Effective Java\",\"id\":20}},{\"product
\":{\"title\":\"Thinking in Java\",\"id\":22}},{\"product\":{\"title\":
\"Programming in Java\",\"id\":23}},{\"product\":{\"title\":\"My

It is escaping " is OK. But "products":"[{ ... the javascript treats
it as a string because of ". can you please suggest any solution to
this problem.