试图找出原因
get '/json_test' do
j = '{"key1": "val1"}'
JSON.parse(j)
end
导致此错误
内部服务器错误
无法将Array转换为String
使用pry gem我可以在解析之前找到一个断点。从那里我可以调用JSON.parse(j),它工作正常。
答案 0 :(得分:2)
因为您正在从路线提供代码。 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,除非你要回应身体中有意义的东西。