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
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章