我想要的是 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
现在显然我在访问“有效负载”时得到的东西是 type Hash(String, JSON::Type)
,这让我有点困惑。
任何想法我如何能够从请求正文中获取子 JSON,将其转换为 String 并返回 JSON?