作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要创建一个像这样的 json 消息:
{
success:true,
count:3,
data: [
{id:1},
{id:2},
{id:3}
]
}
我已经尝试过了
import groovy.json.*
def tasks = [1, 2,3]
def json = new JsonBuilder()
json{
success(true)
count(tasks.size())
data {
tasks.each {
data(
id: it
)
}
}
}
JsonOutput.prettyPrint(json.toString())
但它不起作用。有人可以告诉我如何让它发挥作用吗?
最佳答案
我建议将任务列表转换为 [[id: 1], [id: 2], [id: 3]]
形式的列表,然后对其进行“jsonizing”:
import groovy.json.JsonBuilder
def tasks = [1, 2, 3]
def json = new JsonBuilder()
json{
success(true)
count(tasks.size())
data(tasks.collect {[id: it]})
}
println json.toPrettyString()
我通常更喜欢首先在 Groovy 中生成数据结构(例如列表、映射),然后将它们转换为 JSON,这样我通常可以更好地控制将要序列化的数据,并且不需要包含序列化代码的逻辑。
import groovy.json.JsonBuilder
def tasks = [1, 2, 3]
def data = [
success: true,
count: tasks.size(),
data: tasks.collect {[id: it]}
]
def json = new JsonBuilder(data)
println json.toPrettyString()
关于groovy - 如何将 jsonbuilder 与集合一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9929780/
我是一名优秀的程序员,十分优秀!