Rails - 如何显示缩进的JSON?

时间:2010-05-20 14:06:12

标签: ruby-on-rails json pretty-print

我有一个控制器操作,它返回用于api目的的JSON数据,还有很多。我希望能够在浏览器中检查它,并为观众提供良好的缩进。例如,如果我的数据是

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

我想看看

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

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

    ...etc
}

在视图中。

我考虑使用不同的路线来获取批量/漂亮的数据:

# 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

任何人都知道这样或类似的宝石/插件?我尝试使用JSON.pretty_generate,但它似乎不适用于rails(2.3.5)。感谢。

4 个答案:

答案 0 :(得分:4)

答案 1 :(得分:3)

这只适用于Firefox,但假设你需要漂亮的json来帮助你或其他开发人员在开发过程中你应该查看Firefox的JSONview插件(它让我的生活更轻松):

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

如果你想为所有用户提供一个漂亮的json,无论浏览器是什么,我都没有很好的解决方案。

答案 2 :(得分:3)

你可以用这个

render json: JSON.pretty_generate(data)

答案 3 :(得分:0)

jsonpp是一个很棒的命令行工具,用于格式化(漂亮打印)JSON。

您可以将JSON传输到其中:

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