2013-02-26 30 views
6

私はto_jsonメソッドを呼び出す代わりに.json.erbビューを使用しています。RailsでJSON出力を小さくする方法は?

JSON出力の縮小に関するいくつかのアドバイスがあります。 Webアプリケーションのすべての出力を圧縮することを教えている人もいれば、after filterまたはbefore renderを使用することをお勧めしますが、JSON要素とJSON入力との間のスペースやタブを縮小する方法や、 3番目のアドバイスは、JavaScriptの縮小について厳密に言います。

答えて

4

最も簡単な方法は、Rubyに応答全体を解析し、after_filterを使用してそれを再び吐き出すことです。 app/controllers/application_controller.rbに次のコードを入力してください。

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 
:あなたは、リクエスタがパラメータを使用して指定することができる可能性があり、

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 

または:あなたがあなたの代わりに縮小さの美化JSONをしたいと判断した場合

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 

、あなたはこのコードを使用することができます

関連する問題