Джексон 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, который я хочу.

0 ответов

Другие вопросы по тегам