【问题标题】:Rails - How can I display nicely indented JSON?Rails - 我怎样才能很好地显示缩进的 JSON?
【发布时间】:2011-02-21 21:35:59
【问题描述】:

我有一个控制器操作,它返回用于 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

任何人都知道可以执行此操作或类似操作的 gem/plugin 吗?我尝试使用 JSON.pretty_generate,但它似乎在 rails (2.3.5) 内不起作用。谢谢。

【问题讨论】:

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


    【解决方案1】:

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

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

    如果你想让所有用户都可以使用漂亮的 json 而不管浏览器如何,我没有一个好的解决方案可以提供。

    【讨论】:

    【解决方案2】:

    【讨论】:

      【解决方案3】:

      你可以用这个

      render json: JSON.pretty_generate(data)
      

      【讨论】:

      • 我做了 JSON.pretty_generate(user.attributes) 其中 user 是一个 ActiveRecord 对象。
      • 你可以使用 user.to_json
      • 正是我想要的。谢谢老哥!
      【解决方案4】:

      jsonpp 是用于格式化(漂亮打印)JSON 的出色命令行工具。

      您可以将 JSON 导入其中:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-20
        • 1970-01-01
        • 1970-01-01
        • 2010-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-03-18
        相关资源
        最近更新 更多