[英]How to minify JSON output in Rails?
我使用.json.erb視圖而不是調用to_json方法。
我發現了一些關於JSON輸出縮小的建議。 Ones講述了壓縮Web應用程序的所有輸出,其他人建議after filter
或before 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.