在 Groovy 中使用 JsonBuilder 序列化 java.nio.file.Path
Serialize java.nio.file.Path with JsonBuilder in Groovy
我正在尝试序列化一个包含 java.nio.file.Path
实例的对象,因为 path
是一个接口,所以我收到一个 Whosebug Exception
我检查了这个答案:
并想在 groovy
中为我的用例实现一个类型适配器,但我没有找到 JsonBuilder
等同于 GsonBuilder
的 registerTypeAdapter
或 registerTypeHierarchyAdapter
如何在 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.
我正在尝试序列化一个包含 java.nio.file.Path
实例的对象,因为 path
是一个接口,所以我收到一个 Whosebug Exception
我检查了这个答案:groovy
中为我的用例实现一个类型适配器,但我没有找到 JsonBuilder
等同于 GsonBuilder
的 registerTypeAdapter
或 registerTypeHierarchyAdapter
如何在 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.