gpt4 book ai didi

json - 您如何将所有 Sinatra 响应设置为 JSON?

转载 作者:行者123 更新时间:2023-12-04 19:41:35 27 4
gpt4 key购买 nike

我已经能够在 before 块中将所有内容类型设置为 JSON,但是是否有过滤器后的 sinatra 允许我对所有响应运行 to_json(而不是在下面的示例中编写 to_json 3 次) ?

require 'sinatra'
require 'json'

before do
content_type :json
end

get '/' do
{ song: "Hello" }.to_json
end

get '/go' do
{ song: "Go Yo Ho" }.to_json
end

get '/hi' do
{ song: "Wake me Up" }.to_json
end

谢谢!

最佳答案

您可以在 after 块中执行此操作:

before do
content_type :json
end

get '/' do
{ a: 1 }
end

after do
response.body = JSON.dump(response.body)
end

Sinatra 将重新计算更新后的正文值的正确内容长度。

另一种方法是使用助手:
helper do
def j(data)
JSON.dump(data)
end
end

get '/' do
j({ a: 1 })
end

Sinatra::JSON 项目做同样的事情。此外,您可能想查看专为构建 GrapeGoliath 等 API 而设计的库。这两个库提供了一种简单的方法来连接解码器和编码器来处理这种类型的自动转换。

关于json - 您如何将所有 Sinatra 响应设置为 JSON?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27644016/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com