我有一个 Hash 的子类,它添加了一个新字段 f。我希望 JSON 序列化和反序列化 f 以及散列本身的内容,但还没有弄清楚如何做到这一点:
Class ExtendedHash < Hash
attr_accessor :f
end
当然,正如所写,ExtendedHash#to_json
不保留 f 字段:
>> c = ExtendedHash[{:a => 1, :b => 2}]
=> {:a=>1, :b=>2}
>> c.f = 123
=> 123
>> c.to_json
=> "{\"a\":1,\"b\":2}"
那么什么是正确的定义:
def to_json(*a)
...
end
def self.load_from_json(str)
...
end
end
? (我看过“如何在子类中使用 Ruby 的 to_json 并包含 super 的 json?”,但这似乎不是正确的方法。)