gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-01 05:57:20 25 4
gpt4 key购买 nike

创建的 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com