当前位置: 首页 > 面试题库 >

从json到ruby哈希?

柴嘉年
2023-03-14
问题内容

我可以使用一种方法

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.parseJSON.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”相对应的方法使用了“ snake_case”名称,saveUserLib因为这是Ruby约定。



 类似资料:
  • 问题内容: 我有一个持有以下值的JSON对象: 我想在Ruby中循环遍历以获得键/值对。当我使用时,它不会遍历对象,因为它不是Ruby哈希形式: 如何将上述JSON对象转换为Ruby哈希? 问题答案: 接下来的代码片段呢?

  • 主要内容:创建哈希,实例,实例,哈希内置方法,实例哈希(Hash)是类似 "key" => "value" 这样的键值对集合。哈希类似于一个数组,只不过它的索引不局限于使用数字。 Hash 的索引(或者叫"键")几乎可以是任何对象。 Hash 虽然和数组类似,但却有一个很重要的区别:Hash 的元素没有特定的顺序。 如果顺序很重要的话就要使用数组了。 创建哈希 与数组一样,有各种不同的方式来创建哈希。您可以通过 new 类方法创建一个空的哈希:

  • 问题内容: 如何将ruby哈希对象转换为JSON?所以我在下面尝试这个例子,它不起作用? 我当时在看RubyDoc,显然对象没有方法。但是我正在阅读Rails支持并且也支持的博客。我可以理解是一个Rails对象,但不是Rails本身,它是一个纯Ruby对象。因此,在Rails中可以执行,但不能在纯Ruby中执行? 问题答案: Ruby的众多优点之一就是可以使用自己的方法扩展现有的类。这称为“类重新

  • 所以我使用gem文件从reddit的首页拉链接。gem函数返回一个哈希,其中包含首页上的所有链接及其所有信息(评论、业力、作者、日期、链接、上升、下降等的#)。下面是包含我首页上第一个链接信息的哈希请求: {"modhash"= 结尾<code>,</code>分隔下一个链接,如下所示: {“种类”= 我基本上需要某种方法来解析这个散列的每个条目,这样我就可以将所有相关的东西存储到一个数组中。实际

  • 本章节我们学习另外一个可以组合多个的对象类——哈希,了解哈希是什么,如何创建一个哈希以及哈希对象的实例方法。 1. 什么是哈希 哈希是键值对的集合。—— 官方定义 哈希是另一种非常有用且广泛使用的东西,可用于存储其他对象。与仅作为列表的数组不同,哈希表就像字典。我们通过键(key)来查找哈希中的值(value)。好比我们有一个英汉词典,我们通过查找“hello的单词来找到中文意思"你好",此时,“

  • 问题内容: 我想获得像这样的Hashtable的JSON表示形式: 结果是: 但是,如果将JSON字符串转换回去,则不会得到HashTable,而会得到PSCustomObject。 那么,如何可靠地序列化上述Hashmap? 问题答案: $json = @{Path=”C:\temp”; Filter=”*.js”} | ConvertTo-Json