gradle Reading and writing JSON

http://www.groovy-tutorial.org/basic-json/#_writing_json

Reading JSON

class Student {
    Number id
    String name
    Map results
}

class ClassReport {
    String testScore
    String projectScore
    String comment
}

import groovy.json.JsonSlurper

import java.nio.file.Paths

JsonSlurper slurper = new JsonSlurper()
def studentList

Paths.get('resources/report.json').withReader { reader ->
    studentList = slurper.parse(reader)
}

println studentList.dump()

Writing JSON

import groovy.json.JsonOutput
import groovy.json.JsonSlurper

class Position {
    String department, role
}

class StaffMember {
    Number id
    String name

    Position position

    def displayNameTag() {
        "Staff member: $name [$id]\n${position.role} - ${position.department}"
    }
}

def staffList = [
        new StaffMember(id: 1234, name: 'Fred Nurk',
                position: [ department: 'Accounts', role: 'Manager' ] as Position),
        new StaffMember(id: 8673, name: 'Alexa Sample',
                position: [ department: 'Accounts', role: 'Manager' ] as Position),
        new StaffMember(id: 4568, name: 'Jane Doe',
                position: [ department: 'Accounts', role: 'Manager' ] as Position),
        new StaffMember(id: 8473, name: 'Ian Random',
                position: [ department: 'Accounts', role: 'Manager' ] as Position)
]

//Convert the staffList to JSON using JsonOutput
def json = JsonOutput.toJson(staffList)
println JsonOutput.prettyPrint(json)

//Now read the JSON back in using JsonSlurper
JsonSlurper slurper = new JsonSlurper()
def staffListImport = slurper.parseText(json)

for (person in staffListImport) {
    StaffMember staff = person as StaffMember
    println staff.displayNameTag()
}

Building JSON

import groovy.json.JsonBuilder

def json = new JsonBuilder()
def staffListExport = json.staff {
    '1234' {
        id 1234
        name 'Fred Nurk'
        position (
            department: 'Accounts',
            role: 'Manager'
        )
    }
}

println json.toPrettyString()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值