【Groovy】json 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )

一、使用 JsonSlurper 进行 json 字符串反序列化


将如下 json 字符串


{"age":18,"name":"Tom"}


进行反序列化 ;



首先 , 创建 JsonSlurper 对象 ,


def jsonSlurper = new JsonSlurper()


然后 , 调用该 JsonSlurper 对象的 parse 方法 , 可以对不同类型的 json 数据进行反序列化 ;


可进行反序列化的 json 数据类型如下图所示 :

【Groovy】json 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )



这里调用 jsonSlurper 对象的 parseText 方法 , 将 json 字符串进行反序列化操作 ;


// 将字符串进行 json 反序列化操作 , 得到 map 集合
def jsonObject = jsonSlurper.parseText('{"age":18,"name":"Tom"}');


打印反序列化结果 ,


// 打印反序列化结果
println jsonObject


执行结果如下 :


[age:18, name:Tom]

二、根据 map 集合构造相关类


在上面的章节将 json 字符串


{"age":18,"name":"Tom"}


进行反序列化 , 得到


[age:18, name:Tom]


map 集合 ;


该 map 集合可以直接赋值给相应类对象 , 该类的变量名就是 map 集合的 Key 键 ;


// 根据 map 集合的 Key 构造类
class Student {
    def name
    def age
}


直接将 map 集合赋值给构造的类对象 , 并打印该对象的成员变量值 ;


// 直接将 map 集合赋值给构造的类对象
Student student = jsonObject
// 打印类对象的成员变量值
println "${student.name} , ${student.age}"


执行结果为 :


Tom , 18

三、完整代码示例


完整代码示例 :


import groovy.json.JsonSlurper
// 将 {"age":18,"name":"Tom"} 字符串进行反序列化
def jsonSlurper = new JsonSlurper()
// 将字符串进行 json 反序列化操作 , 得到 map 集合
def jsonObject = jsonSlurper.parseText('{"age":18,"name":"Tom"}');
// 打印反序列化结果
println jsonObject
// 根据 map 集合的 Key 构造类
class Student {
    def name
    def age
}
// 直接将 map 集合赋值给构造的类对象
Student student = jsonObject
// 打印类对象的成员变量值
println "${student.name} , ${student.age}"


执行结果 :


[age:18, name:Tom]
Tom , 18

【Groovy】json 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )

上一篇:WebBrowser的Cookie操作


下一篇:MySQL架构优化实战系列3:定时计划任务与表分区