【Groovy】json 序列化 ( 类对象转为 json 字符串 | 使用 JsonBuilder 进行转换 | 使用 JsonOutput 进行转换 | 将 json 字符串格式化输出 )

简介: 【Groovy】json 序列化 ( 类对象转为 json 字符串 | 使用 JsonBuilder 进行转换 | 使用 JsonOutput 进行转换 | 将 json 字符串格式化输出 )

一、Groovy 对象转为 json 字符串 ( 使用 JsonBuilder 进行转换 )


声明 Student 类 , 在其中声明 2 22 个成员 , name 和 age ;


class Student {
    def name
    def age
}


创建 Student 对象时 , 构造函数中为这两个成员赋值


def student = new Student(name: "Tom", age: 18)


创建 json 生成器 JsonBuilder 对象 , 构造函数中传入 Student 对象 , 即可完成 json 转换 , 将 Student 对象转为了 json 字符串 ;


// json 生成器
def jsonBuilder = new JsonBuilder(student)
println jsonBuilder.toString()


代码示例 :


import groovy.json.JsonBuilder
class Student {
    def name
    def age
}
def student = new Student(name: "Tom", age: 18)
// json 生成器
def jsonBuilder = new JsonBuilder(student)
println jsonBuilder.toString()


执行结果 :


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


二、使用 JsonOutput 将指定类型对象转为 json 字符串


JsonOutput 可以将 Map , URL , String , Number , Date , UUID , Boolean 等类型的对象转为 json 字符串 ;

image.png


将 Student 对象转为 json 代码如下 :


// 将 Student 对象转为 json
def json = JsonOutput.toJson(student)
println json


执行结果 :


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


三、将 json 字符串格式化输出


使用 JsonOutput.prettyPrint(json) 可以将 json 进行格式化输出 ,


函数原型如下 :

/**
     * Pretty print a JSON payload.
     *
     * @param jsonPayload
     * @return a pretty representation of JSON payload.
     */
    public static String prettyPrint(String jsonPayload) {
    }


将 {"age":18,"name":"Tom"} 使用上述格式化输出 ,


// 格式化输出 json 数据
println JsonOutput.prettyPrint(json)
1
2
输出结果 :
{
    "age": 18,
    "name": "Tom"
}





四、完整代码示例


完整代码示例 :


import groovy.json.JsonBuilder
import groovy.json.JsonOutput
class Student {
    def name
    def age
}
def student = new Student(name: "Tom", age: 18)
// json 生成器
def jsonBuilder = new JsonBuilder(student)
println jsonBuilder.toString()
// 将 Student 对象转为 json
def json = JsonOutput.toJson(student)
println json
// 格式化输出 json 数据
println JsonOutput.prettyPrint(json)


执行结果 :


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

image.png

目录
相关文章
|
2月前
|
JSON Java API
GSON 泛型对象反序列化解决方案
GSON 泛型对象反序列化解决方案
|
2月前
|
存储 JSON 安全
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
【C++ JSON库 json值的创建手段】深入探究C++中JSON对象定位与操作:从引用到回调函数
67 0
|
6天前
|
JSON 编译器 Go
Golang深入浅出之-结构体标签(Tags):JSON序列化与反射应用
【4月更文挑战第22天】Go语言结构体标签用于添加元信息,常用于JSON序列化和ORM框架。本文聚焦JSON序列化和反射应用,讨论了如何使用`json`标签处理敏感字段、实现`omitempty`、自定义字段名和嵌套结构体。同时,通过反射访问标签信息,但应注意反射可能带来的性能问题。正确使用结构体标签能提升代码质量和安全性。
10 0
|
28天前
|
JSON C语言 数据格式
C语言与lua通过json对象交互
C语言与lua通过json对象交互
17 1
|
29天前
|
JSON 数据格式
Json字符串与QVariantList 对象相互转换
Json字符串与QVariantList 对象相互转换
7 0
|
2月前
|
JSON Java Maven
使用Jackson进行 JSON 序列化和反序列化
使用Jackson进行 JSON 序列化和反序列化
29 0
|
2月前
|
JSON Android开发 数据格式
android 使用GSON 序列化对象出现字段被优化问题解决方案
android 使用GSON 序列化对象出现字段被优化问题解决方案
|
2月前
|
存储 JSON JavaScript
Python如何解析json对象?
Python如何解析json对象?
25 1
|
2月前
|
存储 JSON 安全
序列化模块pickle和json有什么区别
序列化模块pickle和json有什么区别
18 0
|
2月前
|
XML 存储 BI
如何把一个 ABAP 类的实例,序列化成 XML 字符串试读版
如何把一个 ABAP 类的实例,序列化成 XML 字符串试读版
13 0