json - Groovy 的 JsonBuilder 创建了两个额外的属性

标签 json groovy jsonbuilder

创建的 JSON 对象有两个额外的属性:

  1. contentHash
  2. 原始类名

它们会自动添加,这是我不想要的。 PFB代码

class Info{
    def summary
    def description
}

class Simple{
    def start
    def finish
    def status
}


def buildJson(def info, def simple)
{
    def jsonBuilder = new groovy.json.JsonBuilder()
    jsonBuilder(info: info, simple: simple)
    jsonBuilder.toPrettyString()

}

从上面的代码创建的 Json-

{
    "info": {
        "contentHash": "a36cfa5d54ea40c843fff70e3e6e788e",
        "originalClassName": "Info",
        "summary":"Summary",
        "description": "Description"
    },
    "simple": [
        {
            "contentHash": "1aab6dd693268f65224940a03a51c25b",
            "start": "2017-09-10T08:54:05+0000",
            "originalClassName": "ExampleTest",
            "status": "PASS",
            "finish": "2017-09-10T08:54:16+0000"
        },
        {
            "contentHash": "1aab6dd693268f65224940a03a51c25b",
            "start": "2017-09-10T08:53:37+0000",
            "originalClassName": "ExampleTest",
            "status": "PASS",
            "finish": "2017-09-10T08:54:01+0000"
        }
    ]
}

我不想要这两个属性,我不确定为什么首先要添加它。有没有办法直接生成准确的 JSONObject

最佳答案

我在升级到 groovy 2.4.12 时遇到了这个问题。我通过定义对象类来解决这个问题

你可以试试

 def info = new Object()
 info.metaClass.summary = "Info"
 info.metaClass.description = "Description"

 def simple = new Object()
 simple.metaClass.start = "start"
 simple.metaClass.finish = "finish"
 simple.metaClass.status = "status"

 def buildJson(def info, def simple)
 {
   def jsonBuilder = new groovy.json.JsonBuilder()
   jsonBuilder(info: info, simple: simple)
   println jsonBuilder.toPrettyString()
 }

这将不包括元属性“originalClassName”和“contentHash”

关于json - Groovy 的 JsonBuilder 创建了两个额外的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144492/

相关文章:

java - 如何将我给定的字符串转换为日期格式?

javascript - 我的 Json 数组只返回最后一个数组。如何解决?

templates - 如何在 GStringTemplateEngine 模板中定义函数绑定(bind)?

java - 使用 ant 任务编译 Groovy 文件

json - Groovy - 从字符串构造 json

java - @JsonbTypeDeserializer 和 @JsonbTypeSerializer 在字段中不起作用

php - PDO Foreach 获取循环返回具有特定 id 的第一行,其余为 false

grails - 性能问题碧 Jade 报告和grails/groovy

groovy - 当 Groovy JsonBuilder 尝试序列化 Expando 时,为什么会出现 StackoverflowError?

javascript - JSON 解析文件返回字符串而不是 node/express 中的数组