我正在尝试序列化一个包含java.nio.file.Path
实例的对象,由于path
是一个接口,我正在接收StackOverflow Exception
我已经检查了这个答案:https://stackoverflow.com/a/36966590/11325201并想在groovy
中为我的用例实现一个类型适配器,但我没有找到JsonBuilder
的等效GsonBuilder
的registerTypeAdapter
或registerTypeHierarchyAdapter
如何在Groovy中实现类似的解决方案?
您可以在构造JsonGenerator
对象时将其传递给生成器。此对象允许您指定各种选项,包括类型转换器,您可以使用Class
和闭包注册这些选项。在本例中,转换器只调用Path上的toString
。
def generator = new JsonGenerator.Options()
.addConverter(Path) { Path p -> p.toString() }
.build()
def json = new JsonBuilder(myObjContainingPathProperties, generator).toPrettyString()
JsonGenerator的在线GroovyDocs没有显示任何内容(很可能是3.0版中的GroovyDoc生成器错误(,但2.5版的Groovy Docs可以工作。