前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【Groovy】json 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )

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

作者头像
韩曙亮
发布2023-03-30 11:10:00
1.1K0
发布2023-03-30 11:10:00
举报
文章被收录于专栏:韩曙亮的移动开发专栏

文章目录

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


将如下 json 字符串

代码语言:javascript
复制
{"age":18,"name":"Tom"}

进行反序列化 ;

首先 , 创建 JsonSlurper 对象 ,

代码语言:javascript
复制
def jsonSlurper = new JsonSlurper()

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

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

在这里插入图片描述
在这里插入图片描述

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

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

打印反序列化结果 ,

代码语言:javascript
复制
// 打印反序列化结果
println jsonObject

执行结果如下 :

代码语言:javascript
复制
[age:18, name:Tom]

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


在上面的章节将 json 字符串

代码语言:javascript
复制
{"age":18,"name":"Tom"}

进行反序列化 , 得到

代码语言:javascript
复制
[age:18, name:Tom]

map 集合 ;

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

代码语言:javascript
复制
// 根据 map 集合的 Key 构造类
class Student {
    def name
    def age
}

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

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

执行结果为 :

代码语言:javascript
复制
Tom , 18

三、完整代码示例


完整代码示例 :

代码语言:javascript
复制
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}"

执行结果 :

代码语言:javascript
复制
[age:18, name:Tom]
Tom , 18
在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-02-09,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 文章目录
  • 一、使用 JsonSlurper 进行 json 字符串反序列化
  • 二、根据 map 集合构造相关类
  • 三、完整代码示例
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档