我有一个类似以下的课程
class Foo JSON.mapping( bar: String, baz: String, ) end
我知道我可以通过在JSON.mapping中指定 {root: "name of node"} 来包装JSON对象中的单个属性 . 但有没有办法为整个 Foo 课程做到这一点?
{root: "name of node"}
Foo
那么输出看起来像这样?
{ "foo": { "bar": "", "baz": "" } }
没有方法可以做到,但你可以这样做:
require "json" class Foo JSON.mapping( bar: String, baz: String, ) def initialize(@bar : String, @baz : String) end end foo = Foo.new("r", "z") json = {foo: foo}.to_json puts json
作为我的评论的替代方法,您还可以覆盖 Foo 的 to_json 方法:
to_json
def to_json(builder : JSON::Builder) builder.object do builder.field "foo" do previous_def end end end
https://carc.in/#/r/286q
2 回答
没有方法可以做到,但你可以这样做:
作为我的评论的替代方法,您还可以覆盖
Foo
的to_json
方法:https://carc.in/#/r/286q