Jsonファイル内のデータをブラウザに返す方法
viewにindex.json.jbuilderというファイルを作成
下記のように記述
1,変数無しで単純にjsonとして返す
json.text "変数無しで単純にjsonとして返す"
2,複数続けて書く時は番号をふる
json.text1 "複数続けて書く時は番号をふる"
json.text2 "複数続けて書く時は番号をふる"
3,シンボルに値をセット出来る
json.set! :text, "シンボルに値をセット出来る"
4,キー:nameに値をまとめてセット出来る
出力例=>{"name": {"text": "テキスト"} }
json.set! :name do
json.text, "属性nameに値をまとめてセット出来る。"
end
5,上記の複数バージョン、番号を振る
キー:name1に対して、バリュー"テキスト2"を入れる
json.set! :name1 do
json.text2 "テキスト2"
end
json.set! :name3 do
json.text4 "テキスト4"
end
# 出力例 { "name1": {"text2": "テキスト2" },{ "name3": {"text4": "テキスト4"} }
# 6,複数バージョンの場合でキーが重複する場合、合成された値になる
json.set! :email do
json.text2 "テキスト2"
end
json.set! :email do
json.text4 "テキスト4"
end
# 出力例 { "email": {"text2": "テキスト2", "text4": "テキスト4"} }
controllerは下記のように記述
ProjectsController < ApplicationController
def index
render 'index', formats: 'json', handlers: 'jbuilder'
end
end
そして、ブラウザでlocalhost:3000/projects/indexへアクセスすると、
json形式でレスポンスが返ってきて、画面が表示されます。
ポストマンの場合
sendの左側にlocalhost:3000/projects/indexと入力
httpリクエストgetに指定してsendすると、json形式でレスポンスが返ってくることが確認できました。