我可以使用一种方法
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:
JSON.parse
JSON.load
def load_user_lib( filename ) JSON.parse( IO.read(filename) ) end
此处的关键是IO.read用作从磁盘加载JSON字符串的一种简单方法,以便可以对其进行解析。或者,如果文件中包含UTF-8数据:
IO.read
my_object = JSON.parse( IO.read(filename, encoding:'utf-8') )
我已经链接到上面的JSON文档,所以您应该阅读它以获取更多详细信息。但总而言之:
json = my_object.to_json
json = JSON.generate(my_object)
JSON.dump(my_object, someIO)
my_object = JSON.parse(json)
my_object = JSON.load(someIO)
或者:
def load_user_lib( filename ) File.open( filename, "r" ) do |f| JSON.load( f ) end end
注意:我已经为与“ camelCase”相对应的方法使用了“ snake_case”名称,saveUserLib因为这是Ruby约定。
saveUserLib