Джексон ObjectMapper, как использовать JsonView при чтении POJO в JsonNode
Так что у меня есть странная проблема, когда 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)
etc методы только приняли JsonNodes тогда или что-то еще? Я не знаю. В любом случае принятый ответ мне не помогает, мне действительно нужен JsonNode, и мне нужно, чтобы этот JsonNode НЕ содержал полей, которые не принадлежат JsonView, который я хочу.