我可以使用一种方式
require 'json'
def saveUserLib(user_lib)
File.open("/Users/name/Documents/user_lib.json","w") do |f|
f.write($user_lib.to_json)
end
end
uname = gets.chomp
$user_lib["_uname"] = uname
saveUserLib($user_lib)
但我如何将它作为我的 user_lib 重新找回?
最佳答案
你想要JSON.parse
或 JSON.load
:
def load_user_lib( filename )
JSON.parse( IO.read(filename) )
end
这里的关键是使用 IO.read
作为从磁盘加载 JSON 字符串的简单方法,以便对其进行解析。或者,如果您的文件中有 UTF-8 数据:
my_object = JSON.parse( IO.read(filename, encoding:'utf-8') )
我已链接到上面的 JSON 文档,因此您应该阅读该文档以了解更多详细信息。但总而言之:
json = my_object.to_json
— 在特定对象上创建 JSON 字符串的方法。json = JSON.generate(my_object)
— 从对象创建 JSON 字符串。JSON.dump(my_object, someIO)
— 创建 JSON 字符串并写入文件。my_object = JSON.parse(json)
— 从 JSON 字符串创建一个 Ruby 对象。my_object = JSON.load(someIO)
— 从文件创建一个 Ruby 对象。或者:
def load_user_lib( filename )
File.open( filename, "r" ) do |f|
JSON.load( f )
end
end
注意:我为与您的“camelCase”saveUserLib
对应的方法使用了“snake_case”名称,因为这是 Ruby 约定。
https://stackoverflow.com/questions/9055096/