views:

172

answers:

2

Hi -

I have a controller action that returns JSON data for api purposes, and plenty of it. I want to be able to inspect it in the browser, and have it nicely indented for the viewer. For example, if my data is

data = { :person => { :id => 1, :name => "john doe", :age => 30 }, :person => ... }

I want to see

{ "person" : 
    { 
        "id"   : 1, 
        "name" : "john doe",
        "age"  : 30,
    }, 

   "person" : 
    { 
        "id"   : 2, 
        "name" : "jane doe",
        "age"  : 31,
    },

    ...etc
}

In the view.

I thought about using different routes to get the bulk/pretty data:

# GET /api/json
# ...
respond_to do |format|
  format.html { render :json => data.to_json }
end

# GET /api/json/inspect
# ...
respond_to do |format|
  format.html { render :text => pretty_json }
end

Anyone knows of a gem/plugin that does this or something similar? I tried using JSON.pretty_generate, but it doesn't seem to work inside rails (2.3.5). thanks.

A: 

This will only work with Firefox, but assuming you just need pretty json to help you or other developers during development you should check out the JSONview addon for Firefox (it has made my life easier):

https://addons.mozilla.org/en-US/firefox/addon/10869/

If you want to have a pretty json available to all users regardless of browser, I don't have a good solution to offer.

Jared Hales
A: 

Doesn't print do this?

scottschulthess