Сериализация java .nio.file.Path с JsonBuilder в Groovy - PullRequest
0 голосов
/ 05 марта 2020

Я пытаюсь сериализовать объект, который содержит экземпляр java.nio.file.Path, и поскольку path является интерфейсом, я получаю StackOverflow Exception

Я проверил этот ответ: { ссылка } и хотел реализовать адаптер типа для моего варианта использования в groovy, но я не нашел JsonBuilder эквивалент GsonBuilder registerTypeAdapter или registerTypeHierarchyAdapter

Как мне добиться подобного решения в Groovy?

1 Ответ

2 голосов
/ 05 марта 2020

Вы можете передать объект JsonGenerator своему строителю при его создании. Этот объект позволяет вам указать различные параметры, включая преобразователи типов, которые вы регистрируете с помощью Class и замыкание. В этом примере конвертер просто вызывает toString в пути.

def generator = new JsonGenerator.Options()
                                 .addConverter(Path) { Path p -> p.toString() }
                                 .build()                 

def json = new JsonBuilder(myObjContainingPathProperties, generator).toPrettyString()

* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * , что не может быть отображено версия 3.0), но GroovyDocs для 2.5 работают .

...