簡體   English   中英

如何在Rails中縮小JSON輸出?

[英]How to minify JSON output in Rails?

我使用.json.erb視圖而不是調用to_json方法。

我發現了一些關於JSON輸出縮小的建議。 Ones講述了壓縮Web應用程序的所有輸出,其他人建議after filterbefore render使用after filter但是他們沒有解釋如何縮小JSON元素之間的空格和制表符以及從哪里獲取JSON輸入以及在何處放置縮小的結果。 第三個建議嚴格說明縮小JavaScript。

最簡單的方法就是讓Ruby解析整個響應並使用after_filter再次將其after_filter app/controllers/application_controller.rb嘗試以下代碼。

class ApplicationController < ActionController::Base
  after_filter :minify_json

  private

  def minify_json
    response.body = JSON.parse(response.body).to_json if request.format.json?
  end
end

如果您決定要將JSON美化而不是縮小,則可以使用以下代碼:

class ApplicationController < ActionController::Base
  after_filter :beautify_json

  private

  def beautify_json
    response.body = JSON.pretty_generate(JSON.parse(response.body)) if request.format.json?
  end
end

或者,您可以允許請求者使用參數指定:

class ApplicationController < ActionController::Base
  after_filter :format_json

  private

  def format_json
    if request.format.json?
      json = JSON.parse(response.body)
      response.body = params[:pretty] ? JSON.pretty_generate(json) : json.to_json
    end
  end
end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM