6

to_json メソッドを呼び出す代わりに、.json.erb ビューを使用しています。

JSON 出力の縮小に関するいくつかのアドバイスを見つけました。Web アプリケーションのすべての出力を圧縮することについて説明する人もいればafter filter、 orを使用することを推奨するbefore render人もいますが、JSON 要素間のスペースとタブを縮小する方法、JSON 入力をどこから取得し、縮小した結果をどこに配置するかについては説明していません。3 番目のアドバイスは、JavaScript の縮小について厳密に述べています。

4

1 に答える 1

5

最も簡単な方法は、Ruby に応答全体を解析させ、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
于 2013-06-02T12:23:36.160 に答える