【Groovy】json 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )
2023-09-14 09:07:28 时间
一、使用 JsonSlurper 进行 json 字符串反序列化
将如下 json 字符串
{"age":18,"name":"Tom"}
进行反序列化 ;
首先 , 创建 JsonSlurper 对象 ,
def jsonSlurper = new JsonSlurper()
然后 , 调用该 JsonSlurper 对象的 parse 方法 , 可以对不同类型的 json 数据进行反序列化 ;
可进行反序列化的 json 数据类型如下图所示 :
这里调用 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
相关文章
- kotlin的Map集合
- Java遍历取出Map集合key-value数据的4种方法
- java中的Map集合
- Java map集合深入学习
- jsonArray转list<map>
- python中的set(),zip()以及map()函数
- JAVA中json转Map,jsonArray转List集合,List集合转json
- Java基础入门笔记06——String类和StringBuffer类,Java中的三大集合,Set集合,List集合,Map集合,Collection类
- C++map的遍历_Map集合循环遍历的几种方式
- 【Java集合框架】篇五:Map接口
- Java集合中List,Set以及Map(三者的区别,什么时候用Set,Connection接口)
- 【C++ 语言】容器 ( queue 队列 | stack 栈 | priority_queue 优先级队列 | set 集合 | 容器遍历 | map )
- ORA-15562: workload replay client cannot read the DBA_WORKLOAD_CONNECTION_MAP view ORACLE 报错 故障修复 远程处理
- JavaScript 模仿Java的Map集合,实现功能详解编程语言
- Map大家族的那点事儿(4) :HashMap详解编程语言
- Redis实现高效存储JSON集合(redis集合json)