json - 排除使用 Groovy JsonOutput 序列化的字段

标签 json serialization groovy

在 groovy 中使用 JsonOutput.toJson(..) 时如何排除特定字段被序列化?

给定的类:

class Dummy {
  String f1
  transient String f2
}

代码:

// synthetic getter and setter should be preserved
Dummy dummy = new Dummy(f1: "hello", f2: "world")
String json = JsonOutput. toJson(dummy )
println json

将导致:

{"f1":"hello", "f2":"world"}

应该导致:

{"f1":"hello"}

最佳答案

您还可以将 f2 属性显式设为私有(private)

class Dummy {   

String f1   
private String f2

}

更新: 我不相信有一种“明确”的方法可以做到这一点——如果我错了,请纠正我。我能想到的唯一解决方案是定义一个具有不寻常命名的 getter 方法,例如:

class Dummy {     
String f1    
private String f2
def f2Value() { return f2 }
}

这样可以访问字段值,但会被 JsonOutput 忽略。

关于json - 排除使用 Groovy JsonOutput 序列化的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44909522/

相关文章:

php - 如何正确显示每页的部分结果,而不是全部结果。 (PHP)

json - 当 Go 的 JSON 包提到 Marshal 时是什么意思?

android - 在 Bundle 中重新启动 Activity 时保存 GoogleApiClient

c# - 序列化为 XML 文件会创建无效的 XML 文档 (11,12)

maven - 在 Jenkins 管道中解析 pom.xml 文件

javascript - JSON.stringify 自定义格式

serialization - 如何在 Avro 模式中表示重复字段?

gradle - gradle/groovy 脚本中的逻辑

java - 如何将 java/groovy 中的网页从 ISO-8859-1 转换为 UTF-8

ajax - 如何将 MVC View 返回到 $.Ajax JSON POST