【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

目录
相关文章
|
3天前
|
XML 存储 JSON
c#XML、JSON的序列化和反序列化,看完你就懂了
c#XML、JSON的序列化和反序列化,看完你就懂了
8 0
|
4天前
|
JSON Java Linux
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
【探索Linux】P.30(序列化和反序列化 | JSON序列化库 [ C++ ] )
20 2
|
12天前
|
存储 JSON DataWorks
DataWorks产品使用合集之DataWorks将 MongoDB 中的数组类型写入到 DataWorks 的单个字段时,表示为字符串格式而非 JSON 格式如何解决
DataWorks作为一站式的数据开发与治理平台,提供了从数据采集、清洗、开发、调度、服务化、质量监控到安全管理的全套解决方案,帮助企业构建高效、规范、安全的大数据处理体系。以下是对DataWorks产品使用合集的概述,涵盖数据处理的各个环节。
25 3
|
12天前
|
JSON 分布式计算 大数据
MaxCompute产品使用合集之大数据计算MaxCompute 要提取JSON字符串中的所有key-value对,我该怎么操作
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
16天前
|
JSON 编译器 Go
Golang深入浅出之-结构体标签(Tags):JSON序列化与反射应用
【4月更文挑战第22天】Go语言结构体标签用于添加元信息,常用于JSON序列化和ORM框架。本文聚焦JSON序列化和反射应用,讨论了如何使用`json`标签处理敏感字段、实现`omitempty`、自定义字段名和嵌套结构体。同时,通过反射访问标签信息,但应注意反射可能带来的性能问题。正确使用结构体标签能提升代码质量和安全性。
15 0
|
20天前
|
JSON 运维 Kubernetes
云效产品使用报错问题之流水线中配置了AppStack,构建时下载的制品内容为json字符串,如何解决
本合集将整理呈现用户在使用过程中遇到的报错及其对应的解决办法,包括但不限于账户权限设置错误、项目配置不正确、代码提交冲突、构建任务执行失败、测试环境异常、需求流转阻塞等问题。阿里云云效是一站式企业级研发协同和DevOps平台,为企业提供从需求规划、开发、测试、发布到运维、运营的全流程端到端服务和工具支撑,致力于提升企业的研发效能和创新能力。
|
25天前
|
JSON 数据格式 Python
py如何把字符串转出json
py如何把字符串转出json
7 0
|
1月前
|
JSON 前端开发 Java
Json格式数据解析
Json格式数据解析
|
2天前
|
XML JSON API
转Android上基于JSON的数据交互应用
转Android上基于JSON的数据交互应用
|
10天前
|
JSON JavaScript Java
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
从前端Vue到后端Spring Boot:接收JSON数据的正确姿势
22 0