在Kemal中将JSON解析为数组(字符串)
我想创建一个接收JSON数据并将其解析为字符串数组的端点在Kemal中将JSON解析为数组(字符串),json,crystal-lang,type-systems,kemal,Json,Crystal Lang,Type Systems,Kemal,我想创建一个接收JSON数据并将其解析为字符串数组的端点 POST / { "keys": ["foo", "bar"] } 我的打字系统出了问题。这是我尝试的(.as(Array(String))),但它没有编译: require "kemal" def print_keys(keys : Array(String)) puts "Got keys: #{keys}" end post "/" do |env| keys = env.params.json["keys"].a
POST /
{
"keys": ["foo", "bar"]
}
我的打字系统出了问题。这是我尝试的(.as(Array(String))
),但它没有编译:
require "kemal"
def print_keys(keys : Array(String))
puts "Got keys: #{keys}"
end
post "/" do |env|
keys = env.params.json["keys"].as(Array(String)) # <-- ERROR
print_keys(keys)
end
Kemal.run
要求“凯末尔”
def打印_键(键:数组(字符串))
放置“已获取密钥:#{keys}”
结束
张贴“/”do | env|
keys=env.params.json[“keys”].as(数组(字符串))#我在文档中找到,它使用json.mapping
。在我的具体例子中,可以这样写:
require "kemal"
def print_keys(keys : Array(String))
puts "Got keys: #{keys}"
end
class KeyMappings
JSON.mapping({
keys: Array(String)
})
end
post "/" do |env|
json = KeyMappings.from_json env.request.body.not_nil!
print_keys(json.keys)
end
Kemal.run
require "kemal"
def print_keys(keys : Array(String))
puts "Got keys: #{keys}"
end
class KeyMappings
JSON.mapping({
keys: Array(String)
})
end
post "/" do |env|
json = KeyMappings.from_json env.request.body.not_nil!
print_keys(json.keys)
end
Kemal.run