我想要的是在kemal中的POST请求,其中正文具有我想要访问的一定数量的键/值,然后是我想要字符串化并传递并随后解析回JSON的任意JSON对象。
我的问题是我显然无法获得正确的类型。 想想像这样的潜在JSON主体:
{
"endpoint": "http://example.com",
"interval": 500,
"payload": {
"something": "else",
"more": {
"embedded": 1
}
}
}
现在我一直试图做的是:
require "kemal"
post "/schedule" do |env|
endpoint = env.params.json["endpoint"].as(String)
interval = env.params.json["interval"].as(Int64)
payload = String.from_json(env.params.json["payload"].as(JSON::Any))
# ... move things along
env.response.content_type = "application/json"
{ id: id }.to_json
end
Kemal.run
现在显然我在访问"有效载荷"时似乎得到了什么。是Hash(String, JSON::Type)
类型的东西,这让我有点困惑。
我是否能够从请求主体获取子JSON,将其转换为String并返回JSON?
答案 0 :(得分:1)
已更新:SELECT games.date, games.time,
t.team_name as home_team,
t1.team_name as away_team
FROM games g
LEFT JOIN teams t ON g.home_team=t.id
LEFT JOIN teams t1 on g.away_team=t1.team
是一种payload
。转换然后调用JSON::Type
可以解决问题。
.to_json