我的哈希看起来像:
require 'json'
h = { :foo => 1, :bar => 1 }
h.to_json # will do '{ "foo" : 1, "bar" 1 }'
我发现最好的方法是重新输入密钥并进行序列化:https://stackoverflow.com/a/4137966/887836
在Java中,有一个注释可以将“ foo”重命名为“ Foo”以具有特定的序列化视图。在红宝石中有标准的方法吗? 如果可以的话,我更希望采用一种声明性的方式来指定它。
public class MyClass {
@SerializedName("Foo") String foo;
public MyClass(String foo) {
this.foo = foo;
}
}
答案 0 :(得分:1)
我认为在您的问题中,您正在将“苹果”与“橙色”进行比较。在Java情况下,您有一个您定义的类,可以在其中自由添加注释。然后,这些注释可以由gson之类的库使用,以自定义该类实例的序列化。
在红宝石案例中,您所谈论的是内置类(哈希)的实例,您无法随意对其进行注释(除非您想使用“ Hash”路径)。
如果您创建一个自定义类来表示您的Hash实例,那么您将打开更多选项,例如为类覆盖.to_json方法,甚至实现自己的delarive方案,例如在类中提供映射哈希。
如果您想坚持将数据作为Hash实例保存,那么我认为您应该坚持发现并在注释中提出的各种转换。