なぜこれが
get '/json_test' do
j = '{"key1": "val1"}'
JSON.parse(j)
end
このエラーが発生します
内部サーバーエラー
配列を文字列に変換できません
pry gemを使用すると、解析の前にブレークポイントに到達できます。そこからJSON.parse(j)を呼び出すことができ、正常に機能します。
ルートからコードを提供しているためです。JSON.parse
JSONの文字列をRubyデータ型に変換します。Sinatraルートからの最後の式は、本体の文字列か、Rack [status_code, headers, body]
(またはほぼ)に準拠する配列のいずれかである必要があります。ルートでJSONを受信する場合は、次のことを試してください。
get '/json_test' do
j = '{"key1": "val1"}'
JSON.parse(j)
halt 200
end
しかし、あなたが体の中で意味のある何かで応答するつもりでない限り、それはGETであるべきではありません。