Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
试图弄清楚为什么会这样
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,请尝试以下操作:
JSON.parse
[status_code, headers, body]
get '/json_test' do j = '{"key1": "val1"}' JSON.parse(j) halt 200 end
但它不应该是 GET,除非你要用身体中有意义的东西来回应。