开发者

Rails - How can I display nicely indented JSON?

开发者 https://www.devze.com 2022-12-31 16:15 出处:网络
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 dat

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开发者_StackOverflow 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.


Use JSON.pretty_generate(object)

http://flori.github.com/json/doc/classes/JSON.html#method-i-pretty_generate


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.


you can use this

render json: JSON.pretty_generate(data)


jsonpp is a great command line tool for formatting (pretty printing) JSON.

You can pipe your JSON into it:

curl -s -L http://t.co/tYTq5Pu | jsonpp
0

精彩评论

暂无评论...
验证码 换一张
取 消