java - 在 Groovy 中使用 JsonBuilder 序列化 java.nio.file.Path
问题描述
我正在尝试序列化一个包含java.nio.file.Path
and实例的对象path
它是一个接口,我正在接收一个StackOverflow Exception
我已经检查了这个答案:https ://stackoverflow.com/a/36966590/11325201
并想为我的用例实现一个类型适配器,groovy
但我没有找到JsonBuilder
' 的等价GsonBuilder
物registerTypeAdapter
或registerTypeHierarchyAdapter
如何在 Groovy 中实现类似的解决方案?
解决方案
您可以JsonGenerator
在构建对象时将对象传递给构建器。这个对象允许你指定各种选项,包括类型转换器,你用Class
和 闭包注册。在此示例中,转换器仅调用toString
Path 上的 。
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 版的 GroovyDocs 可以工作。
推荐阅读
- python - 可执行 kivy 应用程序 (matplotlib) 中缺少 .dll 文件
- azure - 在 ARM 模板中设置 IAM 规则
- payment-gateway - 集成 iPad 阅读器时出现 SquareUp 支付网关问题
- sql - 通过插入查询将 Javascript 数据存储在列中时,SQL 查询在 Varchar 字段上的 Visual Studio15(数据库项目)中引发错误
- angular - 在没有 apikey 的情况下使用带有 angular 6 的 tinyMCE(免费)
- css - 离子应用不同的按钮样式
- java - Java 8 - 如何仅通过一次遍历从初始字符串构建字符串
- swift - 标签,字体以编程方式
- matlab - 为什么我的双线性插值与内置的 matlab 函数有很大不同?
- javascript - Javascript。将项目添加到数组会更新所有项目