QA@IT

Sinatra,Rubyでjsonを返すには

3372 PV

Sinatra,Rubyでjsonを返すには

get ' / ' do
 content_type :json
 data = { foo: "aaa"}
 data.to_json
end

aaaの部分に変数を入れて返したいのですがどうすればよいでしょうか
具体的にはtitle,link,descriptionなどをプロパティにもったitemsの中身をループして取り出したいです。

回答

items を丸ごとそのままクライアントに返してもいいのであれば、

 data = {items: items}

とすればいいかと。

items の中の特定の要素からデータを再構成したい場合は、たとえば、

  data = {items: items.map{|item| {title: item[:title], link: item[:link]}}}

などのようにすればいいと思います。

編集 履歴 (0)
  • ありがとうございます。rssパーサーのitemsなのでそのまま取り出したらめちゃくちゃなjsonになってしまいました。で、ループさせて個別に取り出してみたらなぜかエラーになってしまいます。どうしてでしょうか。 -
  • どのようなエラーが出たのかわからないと答えられません… -
ウォッチ

この質問への回答やコメントをメールでお知らせします。