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 => true,:skip_types=>true,:except=>[:id,:created_at,:updated_at]           )          }       format.json { render :json => {:products=>@products.to_json(:only=>[:id,:title]) } }

    end   end

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 experiment\",\"id\":28}}]"}

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.