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

如何将ruby哈希对象转换为JSON?

秦城
2023-03-14
问题内容

如何将ruby哈希对象转换为JSON?所以我在下面尝试这个例子,它不起作用?

我当时在看RubyDoc,显然Hash对象没有to_json方法。但是我正在阅读Rails支持active_record.to_json并且也支持的博客hash#to_json。我可以理解ActiveRecord是一个Rails对象,但Hash不是Rails本身,它是一个纯Ruby对象。因此,在Rails中可以执行hash.to_json,但不能在纯Ruby中执行?

car = {:make => "bmw", :year => "2003"}
car.to_json

问题答案:

Ruby的众多优点之一就是可以使用自己的方法扩展现有的类。这称为“类重新开放”或“猴子修补”(尽管后者的含义可能有所不同)。

因此,在这里看看:

car = {:make => "bmw", :year => "2003"}
# => {:make=>"bmw", :year=>"2003"}
car.to_json
# NoMethodError: undefined method `to_json' for {:make=>"bmw", :year=>"2003"}:Hash
#   from (irb):11
#   from /usr/bin/irb:12:in `<main>'
require 'json'
# => true
car.to_json
# => "{"make":"bmw","year":"2003"}"

如您所见,jsonrequire神奇地to_json为我们带来了方法Hash



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

  • 问题内容: 如何在Java中将hashmap转换或转换为JSON对象,然后再次将JSON对象转换为JSON字符串? 问题答案: 您可以使用: 注意: 这仅适用于 您可以从其文档中获得其他功能 http://stleary.github.io/JSON-java/index.html

  • 问题内容: 我正在尝试处理JSON文件: 我希望能够: 更新键值对上的值 删除键/值 删除或插入一个数组值 我已经做了很多事情来解决这个问题。 我的简化代码思路是: 生成的JSON应该是: 我不确定如何使用这种结构的JSON。 问题答案: 我了解您的JSON可能如下所示: 我建议使用OpenStruct来组织数据: 然后,您得到了所有想要的东西。对于您显示的操作: 然后,进行更改后,可以使用: 您

  • 我有 2 个数组: 我希望array1元素成为新Hash中的键,array2元素成为同一个Hash中相应的值。有人能建议一下怎么做吗? 谢谢

  • 问题内容: 如何将java对象转换为InputStream? 问题答案: 您可以使用ObjectOutputStream 您将对象(以下代码中的obj)写入ObjectOutputStream,要转换为输入流的对象必须实现Serializable。

  • 问题内容: 如何在Java中将对象转换为int? 问题答案: 如果您确定该对象是: 或者,从Java 7开始,您可以等效地编写: 当心,它可以抛出一个,如果你的对象是不是和你要的对象是。 这样,您就假定对象是一个整数(包装的int),然后将其拆箱为一个int。 是基元,因此不能将其存储为,唯一的方法是将考虑/装箱为,然后存储为。 如果您的对象是,则可以使用方法将其转换为简单的int: 如果您的对象