Whi*_*gel 5 java serialization json jackson vert.x
我在开发中使用vertx和Jackson 。在我的一堂课中,我得到了一个 type 字段JsonObject,如下所示:
class User
private String name;
private JsonObject details;
Run Code Online (Sandbox Code Playgroud)
此详细信息字段可以包含其他 JsonObjects 或 JsonArrays,例如:
{"details": [{"street": "Broadway"}, {"building": 20}]}
我没有此结构的专用类,因为没有固定的结构并且它可以变化。
详细信息对象的创建方式如下:
JsonObject details = new JsonObject().put("name", "value").put("another", "another")
Run Code Online (Sandbox Code Playgroud)
这种方法允许我在代码中存储任何结构的详细信息。由于我不需要在后端操作这些数据,所以我不想为其创建特殊的结构。
一切正常,直到我尝试JsonObject使用Jackson对其进行序列化。不幸的是,Jackson 没有给我提供漂亮的 JSON 字符串,而是map使用所有映射的附加字段序列化了对象。
如何使用Jackson序列化JsonObjectvertx ?
最后,事实证明vertx已经有了自己的 Serializer 实现。只需使用他们的类来执行序列化就足够了(这将使用杰克逊卧底)。
JsonObject user = new JsonObject(Json.encode(new User());
Run Code Online (Sandbox Code Playgroud)
而且效果很好。