我尝试获取如何反序列化json
'{…, "money":{"amount":1.45674,"currency":"ETH"}, …}'
使用我自己的函数到我的自定义类或结构等。目标是将浮点数转换为整数而没有舍入错误,并且我想根据货币名称使用自己的货币类。因此,在转换过程中一定不能干扰BigDecimal或其他数字。
或者说1.45674可以用引号引起来,在这种情况下这不是问题。
答案 0 :(得分:1)
如果您使用的是JSON from the Ruby standard library,则以下内容应使Ruby使用您的类:
json_class
)向JSON对象添加一个'{"json_class":"Money::Ethereum","amount":1.45674}'
密钥json_create
的类中添加一个基于JSON数据(例如new(json_data['amount'])
)创建对象的类方法JSON.parse(json_string, create_additions: true)
您可以在JSON extension for Range
中看到一个示例,该示例具有一个json_create
类方法,以及as_json
和to_json
实例方法,它们输出可以反馈到json_create
。
require 'json/add/range'
output = (0..10).to_json
JSON.parse(output, create_additions: true) # Returns the range 0..10