加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

groovy – 如何使用jsonbuilder与集合?

发布时间:2020-12-14 16:36:43 所属栏目:大数据 来源:网络整理
导读:我需要创建一个这样的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 )
我需要创建一个这样的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,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,3]

def data = [
  success: true,count: tasks.size(),data: tasks.collect {[id: it]}
]

def json = new JsonBuilder(data)
println json.toPrettyString()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读