###前提・実現したいこと
Sinatraを利用してデータベースの値をJSONに変換して返すAPIを作りたいのですが、
ActiveRecordを利用したものを to_json で返すと、
json
1[{"colum1":"test1","column2":"test10"},{"colum1":"test2","column2":"test20"},{"colum1":"test3","column2":"test30"}] 2
という形になると思います。
これに、データベースのバージョンやAPIのバージョン等を含めて
json
1{ 2"dbversion":1, 3"apiversion":2, 4"body":[{"colum1":"test1","column2":"test10"},{"colum1":"test2","column2":"test20"},{"colum1":"test3","column2":"test30"}] 5}
のような形にしたいと考えています。
###発生している問題
http://kadoppe.com/archives/2012/04/to_json_instance_method.html
http://dqn.sakusakutto.jp/2014/02/ruby_to_json.html
このページやその他ページを参考にした結果、
Ruby
1class Database < ActiveRecord::Base 2end 3 4def JsonGenerator(json) 5 data = { 6 :dbversion => '1', 7 :apiversion => '2', 8 :body => json 9 } 10 return data.to_json; 11end 12 13 14get '/' do 15 content_type :json, :charset => 'utf-8' 16 database = Database.all 17 jsondatabase = database.to_json() 18 JsonGenerator(jsondatabase) 19end 20
こういった形式も考えたのですが、
json
1{ 2"dbversion":1, 3"apiversion":2, 4"body":"[{"colum1":"test1","column2":"test10"},{"colum1":"test2","column2":"test20"},{"colum1":"test3","column2":"test30"}]" 5}
このようにbodyの内部が配列として認識されない状態になります。
なにぶんRuby初心者の為、初歩的な思い違い等あるかもしれませんが、
何卒ご教授の程よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。