ruby – 使用JSON gem将自定义对象转换为JSON
发布时间:2020-12-16 21:08:23 所属栏目:百科 来源:网络整理
导读:我正在学习如何使用 JSON gem解析和生成 JSON.我可以轻松地创建数据哈希并将其生成为JSON;然而,当涉及获取类的实例(例如Person实例)并将其所有实例变量放入哈希中以转换为JSON时,我有一个大脑放屁. 这是我遇到问题的例子: require "json"class Person def i
我正在学习如何使用
JSON gem解析和生成
JSON.我可以轻松地创建数据哈希并将其生成为JSON;然而,当涉及获取类的实例(例如Person实例)并将其所有实例变量放入哈希中以转换为JSON时,我有一个大脑放屁.
这是我遇到问题的例子: require "json" class Person def initialize(name,age,address) @name = name @age = age @address = address end def to_json end end p = Person.new('John Doe',46,"123 Elm Street") p.to_json 我想创建一个.to_json方法,以便我可以获取一个person对象并将其所有实例变量转换为JSON.我认为我需要做的是获取所有Person的实例变量,将它们放入哈希值然后调用JSON.generate(hash).我现在正在研究如何做到这一点.那么有人可以帮助我完成to_json方法,或者可能建议一种更好的实现方法吗?谢谢! 解决方法
首先,您需要确保使用正确的基本结构:
def to_json(*a) { 'json_class' => self.class.name,'data' => Your data }.to_json(*a) end JSON gem使用json_class键来确定将数据传递给哪个类. * a参数包含JSON gem传入的所有参数,对于类通常不重要,因此您只需将其直接传递给hash的to_json调用.接下来,存储数据的最简单方法是散列或数组: 'data' => [@name,@age,@address] 要么 'data' => { 'name' => @name,'age' => @age,'address' => @address 第一个可能更快,并使self.json_create方法更容易编写,而第二个更容易向后兼容,如果您更改数据结构并希望加载旧的JSON对象. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐
- ORACLE CASE用法
- pull解析xml
- 计算PostgreSQL中两个日期之间的工作时间
- 什么是旧的cvSmooth(src,dst,CV_MEDIAN,3)的C替换
- Flex错误:1004: namespace 要么找不到,要么不是
- 【第18篇】通过fastjson的JSON对象类处理json数组
- Caused by: org.xml.sax.SAXParseException; lin
- c# – 数据库连接失败(System.Data.Sqlclient.Sq
- [Swift]LeetCode158. 用Read4来读取N个字符II $
- AJAX实例:创建一个简单的XMLHttpRequest,从一个
热点阅读