我在用:
import io.vertx.core.json.JsonObject;
Run Code Online (Sandbox Code Playgroud)
假设我们有一堂课:
class Foo {
public String barStar;
public boolean myBool;
}
Run Code Online (Sandbox Code Playgroud)
然后我们有一个像这样的 JsonObject:
var o = new JsonObject(`{"bar_star":"yes","my_bool":true}`);
Run Code Online (Sandbox Code Playgroud)
是否有一些内置机制可以将 JsonObject 映射到类中的匹配字段?我正在考虑某种地图实例,如下所示:
Foo f = o.mapTo(Foo.class, Map.of("bar_star","barStar","my_bool","myBool");
Run Code Online (Sandbox Code Playgroud)
所以你会传入一个映射实例,这会告诉 JsonObject 如何映射字段?可以以某种方式展示如何执行此操作的示例吗?我特别询问如何在反序列化到类之前映射字段。
Vert.x 有一个mapTo方法(参见此处)。当您已经拥有JsonObject.
在幕后,Jackson 用于映射,因此您可以简单地使用@JsonProperty("...")来覆盖属性的映射。
您的示例如下所示:
class Foo {
@JsonProperty("bar_start")
public String barStar;
@JsonProperty("my_bool")
public boolean myBool;
}
JsonObject obj = new JsonObject(`{"bar_star":"yes","my_bool":true}`);
Foo foo = obj.mapTo(Foo.class);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5022 次 |
| 最近记录: |