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