Как ответить в формате JSON с использованием промежуточного программного обеспечения Ruby Rack - PullRequest
7 голосов
/ 12 марта 2012

Как ответить на простой сервер ruby ​​rack с помощью объекта JSON, допустим, что mt server выглядит примерно так:

app = Proc.new do |env| 
  [200, { 'Content-Type' => 'text/plain' }, ['Some body']]
end 

Rack::Handler::Thin.run(app, :Port => 4001, :threaded => true)

, и давайте предположим, что вместо некоторого основного текста мне нужен объект JSON с чем-то вроде:

{
"root": [
    {
        "function": null
    }
] 

}

Спасибо

1 Ответ

18 голосов
/ 12 марта 2012

Включите гем "json" в свой проект, а затем вызовите #to_json в хэше:

app = Proc.new do |env| 
  [200, { 'Content-Type' => 'application/json' }, [ { :x => 42 }.to_json ]]
end

Обратите внимание, что nil переводится в null в JSON, если вам нужноnull.

...