小编grd*_*ult的帖子

从POJO到vertx.io的JsonObject的优雅映射?

我目前正在研究vertx.io应用程序,并希望使用提供的mongo api进行数据存储.我目前在股票JsonObject类之上有一个相当笨重的抽象,其中所有getset方法都被替换为:

this.backingObject.get(KEY_FOR_THIS_PROPERTY);
Run Code Online (Sandbox Code Playgroud)

现在这一切都很好,但它不会特别好地扩展.它看起来也很脏,特别是在使用嵌套数组或对象时.例如,如果我希望只有在知道实际数据时才能填充字段,我必须检查数组是否存在,以及它是否不创建它并将其存储在对象中.然后我可以在列表中添加一个元素.例如:

if (this.backingObject.getJsonArray(KEY_LIST) == null) {
    this.backingObject.put(KEY_LIST, new JsonArray());
}
this.backingObject.getJsonArray(KEY_LIST).add(p.getBackingObject());
Run Code Online (Sandbox Code Playgroud)

我曾考虑过潜在的解决方案,但并不特别喜欢它们.也就是说,我可以使用Gson或一些带有注释支持的类似库来处理加载对象以便在我的代码中操作数据,然后使用Gson和Vertx的序列化和反序列化函数来转换格式,(vertx to load data -> json string -> gson to parse json into pojos -> make changes -> serialize to json string -> parse with vertx and save)但这是一个真正粗暴和低效的工作流程.我也可能想出一些扩展/实现vertx json库的抽象包装器,但是将所有功能传递给gson,但这看起来似乎也很多.

有没有什么好方法可以使用vertx实现更友好和可维护的序列化?

java json vert.x

21
推荐指数
3
解决办法
2万
查看次数

标签 统计

java ×1

json ×1

vert.x ×1