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

Posted 韩曙亮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Groovyjson 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )相关的知识,希望对你有一定的参考价值。

文章目录





一、使用 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

以上是关于Groovyjson 字符串反序列化 ( 使用 JsonSlurper 进行 json 字符串反序列化 | 根据 map 集合构造相关类 )的主要内容,如果未能解决你的问题,请参考以下文章

使用 kotlinx.serialization 库反序列化具有不同值类型的 JSON 数组

j.net 实现json的序列化与反序列化

python处理JSON 序列化与反序列化

jquery数据属性不解析json字符串

jackson的基础知识

c# 多个json字符串反序列化