4、Groovy创建JSON与解析JSON处理

1、实体类

package com.groovy.model

/**
 * 在Groovy不需要自定义构造方法.但是必须要指定属性名称去传参数数据,Groovy会自动创建,在调用的时候会自动生成setter/getter方法
 */
class User implements Serializable{
    //用户Id
    Long userId
    //用户名
    String userName
    //年龄
    int  age
}

2、测试代码

package com.groovy.domain
import com.groovy.model.User
import groovy.json.JsonOutput
import groovy.json.JsonSlurper
import groovy.json.StringEscapeUtils
import org.junit.Test

class JsonTest {

    /**
     * 初始化数据
     * @return
     */
    def initData() {
        //init初始化数据、在Groovy不需要自定义构造方法.但是必须要指定属性名称去传参数数据,Groovy会自动创建,在调用的时候会自动生成setter/getter方法
        def userArray = [
                new User(userId: System.currentTimeMillis(), userName: "周伯通", age: 90),
                new User(userId: System.currentTimeMillis(), userName: "瑛姑", age: 89)
        ]
        return userArray
    }

    /**
     * 创建Json数据
     */
    @Test
    void createJson() {

        //init初始化数据
        def userArray = initData()

        //转换成Json数据
        def json = JsonOutput.toJson(userArray)

        //格式化Json数据
        def prettyJson = JsonOutput.prettyPrint(json)

        //将Unicode转为中文
        def jsonText = StringEscapeUtils.unescapeJava(prettyJson)
        println(jsonText)

        //将中文转为Unicode
        //StringEscapeUtils.escapeJava(jsonText)
    }

    /**
     * 解析JSON数据
     */
    @Test
    void parseJson() {
        //init初始化数据
        def userArray = initData()

        //转换成Json数据
        def json = JsonOutput.toJson(userArray)

        //创建JsonSlurper
        def jsonSlurper = new JsonSlurper()

        //解析Json数据
        def parse = jsonSlurper.parseText(json)

        //循环输出解析出来的信息
        parse.findAll().forEach { owner ->
            //方法1
            //println(owner["userName"] + "," + owner["age"])

            //方法2,将数据转换成User对象,此处理同Kotlin语法一样
            def user = owner as User
        println("userId=${user.userId},userName=${user.userName},age=${user.age}")
        }
    }
}

3、createJson方法运行的结果

[
    {
        "userName": "周伯通",
        "userId": 1638085075387,
        "age": 90
    },
    {
        "userName": "瑛姑",
        "userId": 1638085075618,
        "age": 89
    }
]

4、parseJson方法运行的结果

userId=1638085179888,userName=周伯通,age=90
userId=1638085180028,userName=瑛姑,age=89
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章