在 ruby 中创建嵌套哈希并将其保存到 JSON
Create nested hashes in ruby and save it into JSON
嗨,我是 ruby 的新手,我正在尝试将嵌套哈希保存到 JSON 文件中,最终的哈希如下所示:
{"**School**":{"*Students*":{ "Info":{},"Values":{} },"*Teachers*":{ "Info":{},"Values":{} } } }
但最初哈希必须以空开头:
{"**School**":{} }
然后我需要在每个级别添加元素,如下所示:
{"**School**":{} ,"**Hospital**":{} }
和
{"**School**":{ "*Students*":{} } ,"**Hospital**":{} }
和
{"**School**":{ "*Students*":{ "*Info*":{ "Name": "Varchar" },"*Values*":{ "Name": "Jane" } } } ,"**Hospital**":{} }
我尝试了类似下面的方法,但它似乎不起作用:
hash = Hash.new
hash[ "**School**" ] = {"Student":{}}
hash[ "**School**" ][ "Student" ] = {"Info":{},"Values":{}}
File.open("saved.json","w") do |f|
f.write(hash.to_json)
感谢您的宝贵时间和帮助。
试试这个...
hash = Hash.new
hash[ "**School**" ] = {}
hash[ "**School**" ][ "Student" ] = {}
hash[ "**School**" ][ "Student" ]["Info"] = {}
hash[ "**School**" ][ "Student" ]["Values"] = {}
这将在所需结构中用空内容初始化您的散列。
你的问题是:
的关键
{"Student": {}}
# {:Student=>{}}
是
:Student
而不是
"Student"
要定义字符串键,请使用:
{"Student" => {}}
to_json
似乎并不关心键是符号还是字符串,并以相同的格式导出它们:
require 'json'
puts ({a: 1, "a" => 2}.to_json)
# {"a":1,"a":2}
这对调试没有帮助。
嗨,我是 ruby 的新手,我正在尝试将嵌套哈希保存到 JSON 文件中,最终的哈希如下所示:
{"**School**":{"*Students*":{ "Info":{},"Values":{} },"*Teachers*":{ "Info":{},"Values":{} } } }
但最初哈希必须以空开头:
{"**School**":{} }
然后我需要在每个级别添加元素,如下所示:
{"**School**":{} ,"**Hospital**":{} }
和
{"**School**":{ "*Students*":{} } ,"**Hospital**":{} }
和
{"**School**":{ "*Students*":{ "*Info*":{ "Name": "Varchar" },"*Values*":{ "Name": "Jane" } } } ,"**Hospital**":{} }
我尝试了类似下面的方法,但它似乎不起作用:
hash = Hash.new
hash[ "**School**" ] = {"Student":{}}
hash[ "**School**" ][ "Student" ] = {"Info":{},"Values":{}}
File.open("saved.json","w") do |f|
f.write(hash.to_json)
感谢您的宝贵时间和帮助。
试试这个...
hash = Hash.new
hash[ "**School**" ] = {}
hash[ "**School**" ][ "Student" ] = {}
hash[ "**School**" ][ "Student" ]["Info"] = {}
hash[ "**School**" ][ "Student" ]["Values"] = {}
这将在所需结构中用空内容初始化您的散列。
你的问题是:
的关键{"Student": {}}
# {:Student=>{}}
是
:Student
而不是
"Student"
要定义字符串键,请使用:
{"Student" => {}}
to_json
似乎并不关心键是符号还是字符串,并以相同的格式导出它们:
require 'json'
puts ({a: 1, "a" => 2}.to_json)
# {"a":1,"a":2}
这对调试没有帮助。