我有一个像下面这样的课程
class Foo
JSON.mapping(
bar: String,
baz: String,
)
end
我知道我可以通过{root: "name of node"}
在 JSON.mapping 内部指定来将单个属性包装在 JSON 对象中。但是有没有办法为整个Foo
班级做到这一点?
所以输出看起来像这样?
{
"foo": {
"bar": "",
"baz": ""
}
}
我有一个像下面这样的课程
class Foo
JSON.mapping(
bar: String,
baz: String,
)
end
我知道我可以通过{root: "name of node"}
在 JSON.mapping 内部指定来将单个属性包装在 JSON 对象中。但是有没有办法为整个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
作为我评论的替代方案,您还可以覆盖以下to_json
方法Foo
:
def to_json(builder : JSON::Builder)
builder.object do
builder.field "foo" do
previous_def
end
end
end