所以我有一个奇怪的问题,杰克逊的 ObjectMapper 有一个valueToTree(someObject)
接受 POJO 并输出 JsonNode 的方法。但是,我拥有的对象上有一个 bajillion 字段,在执行此操作时不应序列化,通常当我想将对象序列化为字节或字符串时,这很容易通过以下方式完成:
mapper.writerWithView(User.WithRoles.class).writeValueAsBytes(myUser)
但是,我似乎无法将 JsonView 与此 valueToTree 方法一起使用,因此我唯一的选择似乎是手动创建 json(呃)或做一些像这样的噩梦:
final JsonNode userJson = mapper.readTree(mapper.writerWithView(User.class).writeValueAsBytes(userAndRoles.getKey()));
我在哪里双重解析 json。肯定有更好的方法,对吧?
这里有一个类似的问题,但有趣的是,作者似乎只是想要一个 JsonNode,因为 Play Framework 的ok(content)
等unauthorized(content)
方法当时只接受 JsonNodes 还是什么?我不知道。无论如何,那里接受的答案对我没有帮助,我实际上需要一个 JsonNode 并且我需要该 JsonNode 不包含不属于我想要的 JsonView 的字段。