【发布时间】:2020-05-20 13:39:27
【问题描述】:
由于某种原因,我无法使用 JSONBuilder 在 Groovy 中创建 JSON 对象
这是我所拥有的,但它又回来了{}:
import groovy.json.JsonBuilder
JsonBuilder builder = new JsonBuilder()
builder {
name "Name"
description "Description"
type "schedule type"
schedule {
recurrenceType "one time"
start "${startDateTime}"
end "${endDateTime}"
}
scope {
entities ["${applicationId}"]
matches [
{
tags [
{
key "key name"
context "some context"
}
]
}
]
}
}
有人知道用嵌套元素创建 JSON 对象的简单方法吗?
【问题讨论】:
-
为什么不用
groovy.json.JsonOutput.toJson([name:'Name', description: 'Description', schedule:[recurrenceType:'one time']])之类的东西?参数只是一个包含所有数据的地图。 -
@ernest_k 我试过你的建议。我想在这一点上,我尝试了任何变体:/如果我添加逗号,我的 IDE 会抱怨,就像在你的建议中一样,所以我没有添加它们,但它返回 {} 你测试你的建议了吗?对你起作用吗? return JsonOutput.toJson({name: "Name" description: "Description" ...}).toString()
-
你所拥有的不是我所建议的。我建议了一个地图参数(
[... : ...],而不是{})。是的,我测试过了,它产生了字符串{"name":"Name","description":"Description","schedule":{"recurrenceType":"one time"}} -
@ernest_k 我很好。差不多好了。我将如何处理输出中也需要 [ ] 的匹配项和标签? "matches": [ { "tags": [ { key "key name" context "some context" } ] } ] 加倍?
-
我会为你添加一个答案。
标签: groovy jsonbuilder