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

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

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


将如下 json 字符串


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


进行反序列化 ;



首先 , 创建 JsonSlurper 对象 ,


def jsonSlurper = new JsonSlurper()


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


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

image.png



这里调用 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

image.png

目录
相关文章
|
1月前
|
JSON 数据格式 索引
Python中序列化/反序列化JSON格式的数据
【11月更文挑战第4天】本文介绍了 Python 中使用 `json` 模块进行序列化和反序列化的操作。序列化是指将 Python 对象(如字典、列表)转换为 JSON 字符串,主要使用 `json.dumps` 方法。示例包括基本的字典和列表序列化,以及自定义类的序列化。反序列化则是将 JSON 字符串转换回 Python 对象,使用 `json.loads` 方法。文中还提供了具体的代码示例,展示了如何处理不同类型的 Python 对象。
|
1月前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第22天】在Java的世界里,对象序列化和反序列化是数据持久化和网络传输的关键技术。本文将带你了解如何在Java中实现对象的序列化与反序列化,并探讨其背后的原理。通过实际代码示例,我们将一步步展示如何将复杂数据结构转换为字节流,以及如何将这些字节流还原为Java对象。文章还将讨论在使用序列化时应注意的安全性问题,以确保你的应用程序既高效又安全。
|
2月前
|
存储 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第9天】在Java的世界里,对象序列化是连接数据持久化与网络通信的桥梁。本文将深入探讨Java对象序列化的机制、实践方法及反序列化过程,通过代码示例揭示其背后的原理。从基础概念到高级应用,我们将一步步揭开序列化技术的神秘面纱,让读者能够掌握这一强大工具,以应对数据存储和传输的挑战。
|
2月前
|
存储 安全 Java
Java编程中的对象序列化与反序列化
【10月更文挑战第3天】在Java编程的世界里,对象序列化与反序列化是实现数据持久化和网络传输的关键技术。本文将深入探讨Java序列化的原理、应用场景以及如何通过代码示例实现对象的序列化与反序列化过程。从基础概念到实践操作,我们将一步步揭示这一技术的魅力所在。
|
2月前
|
JSON 数据格式
用来返回Json数据格式的工具--通用类
用来返回Json数据格式的工具--通用类
20 1
|
1月前
|
存储 缓存 NoSQL
一篇搞懂!Java对象序列化与反序列化的底层逻辑
本文介绍了Java中的序列化与反序列化,包括基本概念、应用场景、实现方式及注意事项。序列化是将对象转换为字节流,便于存储和传输;反序列化则是将字节流还原为对象。文中详细讲解了实现序列化的步骤,以及常见的反序列化失败原因和最佳实践。通过实例和代码示例,帮助读者更好地理解和应用这一重要技术。
42 0
|
3月前
|
JSON 安全 编译器
扩展类实例的序列化和反序列化
扩展类实例的序列化和反序列化
42 1
|
3月前
|
Go 定位技术 索引
Go 语言Map(集合) | 19
Go 语言Map(集合) | 19
|
3月前
|
存储 前端开发 API
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
该文章详细介绍了ES6中Set和Map数据结构的特性和使用方法,并探讨了它们在前端开发中的具体应用,包括如何利用这些数据结构来解决常见的编程问题。
ES6的Set和Map你都知道吗?一文了解集合和字典在前端中的应用
|
4月前
|
存储 安全 Java
java集合框架复习----(4)Map、List、set
这篇文章是Java集合框架的复习总结,重点介绍了Map集合的特点和HashMap的使用,以及Collections工具类的使用示例,同时回顾了List、Set和Map集合的概念和特点,以及Collection工具类的作用。
java集合框架复习----(4)Map、List、set