栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何使用JSON进行Ruby对象序列化

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何使用JSON进行Ruby对象序列化

将Marshal,PStore或其他Ruby解决方案用于非JSON对象

有人可能会奇怪,为什么像Ruby这样的完全反射性语言不能自动执行JSON生成和任意类的解析。

但是,除非坚持使用JSON类型,否则除了发送给其他正在运行的Ruby之外,没有其他地方可以发送或接收JSON对象。在那种情况下,我怀疑传统的看法是“忘记JSON,使用像核心类这样的本地Ruby接口

Marshal

因此,如果您确实要将这些对象发送到PHP或非Ruby的对象,则应该使用Array等直接创建支持JSON的Ruby数据结构,然后使用JSON.generate直接处理这些对象。

如果只需要序列化,则可以使用

Marshal
PStore

更新:啊哈,好的,试试这个:

module AutoJ  def auto_j    h = {}    instance_variables.each do |e|      o = instance_variable_get e.to_sym      h[e[1..-1]] = (o.respond_to? :auto_j) ? o.auto_j : o;    end    h  end  def to_json *a    auto_j.to_json *a  endend

如果然后您

include AutoJ
在每个班级中都应该使用DTRT。在您的示例中,这导致

{  "a": {    "string_field1": "aa",    "string_field2": "bb"  },  "b": {    "int_field3": 123,    "string_field4": "dd"  }}

您可能希望将

auto_j
方法更改为return
h.values
而不是just
h
,在这种情况下,您将获得:

[  ["aa", "bb"],  [123, "dd"]]


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/404213.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号