gpt4 book ai didi

ruby-on-rails - 如何在 ruby​​ 中构建这个 JSON 对象?

转载 作者:太空宇宙 更新时间:2023-11-03 17:06:01 25 4
gpt4 key购买 nike

我需要在 JSON 中引入一组 ruby​​ 对象。我将需要通过 id 在 JSON 对象中找到项目,所以我认为最好是 id 是每个对象的键。这种结构对我来说最有意义:

{
"1": {"attr1": "val1", "attr2": "val2"},
"2": {"attr1": "val1", "attr2": "val2"},
"3": {"attr1": "val1", "attr2": "val2"}
}

这样我就可以轻松调用 json 对象,如 console.log(json_obj[id].attr1)

问题是我不太确定如何在 ruby​​ 中构建它。据我所知:

# in ruby
@book_types = []
BookType.all.each do |bt|
@book_types << {bt.id => {:attr => bt.attr}}
end
@book_types = @book_types.to_json

// In JS
var bookTypes = JSON.parse('<%=raw @book_types %>');

2 个问题:如何用 ruby​​ 构建它?有没有更好的方法来完成我正在做的事情?

另请注意,我是在 Rails 框架上构建它的

谢谢!

最佳答案

假设 BookType 是一个 ActiveRecord 类,您可以这样做:

BookType.all(:select => "attr1, attr2").to_json

...其中 "attr1, attr2" 是您要包含在 JSON 中的属性列表。

如果你想将 id 作为键,你可以这样做:

BookType.all.inject({}) { |hsh, bt|
hsh[bt.id] = { "attr1" => bt.attr1, "attr2" => bt.attr2 }
hsh
}.to_json

关于ruby-on-rails - 如何在 ruby​​ 中构建这个 JSON 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3142271/

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