在 Groovy 中使用 JsonBuilder 序列化 java.nio.file.Path

Serialize java.nio.file.Path with JsonBuilder in Groovy

我正在尝试序列化一个包含 java.nio.file.Path 实例的对象,因为 path 是一个接口,所以我收到一个 Whosebug Exception

我检查了这个答案: 并想在 groovy 中为我的用例实现一个类型适配器,但我没有找到 JsonBuilder 等同于 GsonBuilderregisterTypeAdapterregisterTypeHierarchyAdapter

如何在 Groovy 中实现类似的解决方案?

您可以在构建时将 JsonGenerator 对象传递给您的构建器。该对象允许您指定各种选项,包括您使用 Class 和闭包注册的类型转换器。在此示例中,转换器仅调用路径上的 toString

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

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

online GroovyDocs for JsonGenerator do not show anything (likely a GroovyDoc generator bug in version 3.0), but the GroovyDocs for 2.5 work.