gpt4 book ai didi

ruby-on-rails - Rails 和有源模型串行器 : prevent double JSON encoding and escape characters (\)

转载 作者:行者123 更新时间:2023-12-04 07:28:51 26 4
gpt4 key购买 nike

在我的一个 Controller 中,我手动组合了我的 JSON 数据以便能够使用 AMS 自定义序列化程序:

data[:foos] = {}
Foo.find(foo_ids).each do |f|
data[:foos][f.id.to_s] = render_to_string :json => f, :root => false, :serializer => FooCustomSerializer
end

data[:moos] = {}
Moo.find(moo_ids).each do |f|
data[:moos][f.id.to_s] = render_to_string :json => f, :root => false, :serializer => MooCustomSerializer
end

result = {:system => system_info, :content => data}

respond_to do |format|
format.json { render json: result }
end

它可以工作,但问题是它对 Moos 和 Foos 进行了两次编码,并且呈现的 JSON 有很多转义字符:
{ "system":"OK",
"content":
"foos":"[{\"name\":\"Rex\",\"breed\":\"Lab\"},{\"name\":\"Spot\",\"breed\":\"Dalmation\"},{\"name\":\"Fido\",\"breed\":\"Terrier\"}]"
...

有没有办法防止这种情况?

最佳答案

就放 .to_json在哈希变量之后。

例子:

format.json { render json: result }
# Change to
format.json { render json: result.to_json }

关于ruby-on-rails - Rails 和有源模型串行器 : prevent double JSON encoding and escape characters (\),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18877457/

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