我有一个Ruby哈希,看起来像:
{ "id" => "123", "name" => "test" }
Run Code Online (Sandbox Code Playgroud)
我想将其转换为:
{ :id => "123", :name => "test" }
Run Code Online (Sandbox Code Playgroud) 我想将下面的字符串数组的元素转换为符号,并输出它们
strings = ["HTML", "CSS", "JavaScript", "Python", "Ruby"]
Run Code Online (Sandbox Code Playgroud)
看看我在做什么:
strings.each { |x| puts x.to_sym }
Run Code Online (Sandbox Code Playgroud)
没有成功.我究竟做错了什么?
如何使用OpenStruct的marshal_load实用程序?它似乎没有按预期工作.
文档提供了这个示例,但它似乎不起作用.
require 'ostruct'
event = OpenStruct.new
hash = { 'time' => Time.now, 'title' => 'Birthday Party' }
event.marshal_load(hash)
event.title # => nil
Run Code Online (Sandbox Code Playgroud)
如果不是这样,我如何将哈希加载到OpenStruct(不使用构造函数)?
对于上下文:我正在从YAML文件加载哈希并将其加载到OpenStruct子类的现有实例中.
我需要更改哈希的键,当前给我的键是字符串,我需要它是哈希的普通键。我留下下面的例子。
我尝试了一些我发现为Symbolize_keys的方法,但是它们没有用,并说该方法不存在,我使用它的方式与Ruby的Apidock中的一样。
我有这个:
hash = {"name"=>"Jhon","lastname"=>"Doe"}
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为:
hash = {:name=>"Jhon",:lastname=>"Doe"}
Run Code Online (Sandbox Code Playgroud)
谢谢朋友