我已经将一个json文件(由一个名为&#34的单个数组;项目"包含4个键值对)组成一个OpenStruct,以便我可以将我的数据视为对象。我现在想在网页上随机显示每个对象。
# read json file and parse into OpenStruct
def read_json(url)
json_file = File.read(url)
json_obj = JSON.parse(json_file, object_class: OpenStruct)
return json_obj
end
# sample array
def random_display(json)
out = json.items.sample
return out
end
我的json基本上就像:
{
"items": [
{
"foo": "bar",
"foo": "bar"
},
{
"foo": "bar",
"foo": "bar"
},
}
最后,在我的Sinatra路线中,我得到了:
get '/' do
@data = read_json("public/data.json")
@random = random_display(@data)
erb :index
end
在我的erb页面中,我使用<%= @random %>
并获得一个简单的#
作为结果。为什么?我的意思是,我知道它是因为我没有告诉它显示任何一个特定键的价值。但是我该如何解决这个问题?
另一件事 - 我觉得我正在尝试做的事情(这就是创建一个小游戏,要求你选择更昂贵的两个随机选项) - 从根本上说错。