《Groovy极简教程》第12章 Groovy的JSON包
来源:互联网 发布:海康网络摄像机维修 编辑:程序博客网 时间:2024/06/05 17:58
《Groovy极简教程》第12章 Groovy的JSON包
Groovy自带了转换JSON的功能,相关类都在groovy.json包下。本文参考自Groovy文档 Parsing and producing JSON。
首先我们定义两个简单的类。
class Person { int id String name List<Book> books @Override String toString() { "Book(id;$id,name:$name,books:${books})" }}class Book { int id String name @Override String toString() { "Book(id:$id,name:$name)" }}
JsonOutput
JsonOutput类用于将Groovy对象转换为JSON字符串。使用起来非常简单。JsonOutput功能很强,可以转换各种基本类型、数组、列表、Map、自定义对象等等。对结果再次调用prettyPrint方法,还可以获得格式化的输出,非常方便。
static void parseSimpleObject() { def book = new Book(id: 1, name: 'Thinking in Java') def jsonOutput = new JsonOutput() def result = jsonOutput.toJson(book) println(result) //格式化输出 println(jsonOutput.prettyPrint(result)) }//结果{"id":1,"name":"Thinking in Java"}{ "id": 1, "name": "Thinking in Java"}
JsonSlurper
JsonSlurper和JsonOutput相反,用于将Groovy对象转换为Json字符串。它提供了很多parse方法,可以从文件、数组、字节流等各种地方转换对象,这里调用的是parseText方法,从字符串中转换对象。注意转换结果是一个Map,当然如果对象很简单,我们可以使用Groovy的Map解构用Map创建实际对象。
static void parseSimpleJson() { def text = '{"id":1,"name":"Thinking in Java"}' def jsonSlurper = new JsonSlurper() //获取到的是Map对象 def map = jsonSlurper.parseText(text) println(map) //将Map转换为实际对象 def obj = new Book(map) println(obj) }
用JsonSlurper的时候需要注意,数组会被转换为ArrayList对象,而object会被转换为Map对象。在进行复杂对象处理的时候要留意这些返回值。
参考资料:
1.http://www.groovy-lang.org/json.html
2.Groovy 处理JSON
阅读全文
0 0
- 《Groovy极简教程》第12章 Groovy的JSON包
- 《Groovy极简教程》第9章 Groovy闭包(Closures)
- 《Groovy极简教程》第1章 Groovy简介
- 《Groovy极简教程》第2章 Groovy基础数据类型
- 《Groovy极简教程》第3章 Groovy基本语法
- 《Groovy极简教程》第6章 Groovy与Grails
- 《Groovy极简教程》第7章 Groovy与Gradle
- 《Groovy极简教程》第4章 Groovy与Java混合编程
- 《Groovy极简教程》第5章 SpringBoot集成Groovy与Java混合编程
- 《Groovy极简教程》第8章 Groovy:领域特定语言(DSL)
- 《Groovy极简教程》第10章 Groovy面向对象编程(OOP)
- 《Groovy极简教程》第11章 Groovy函数式编程(FP)
- Groovy的闭包
- Groovy的闭包
- Groovy的闭包
- Groovy的闭包
- Groovy的闭包
- groovy 闭包实战教程
- 用普通button提交file文件到controller
- 关于sql加反引号与不加反引号的理解
- 《Groovy极简教程》第9章 Groovy闭包(Closures)
- 《Groovy极简教程》第10章 Groovy面向对象编程(OOP)
- 《Groovy极简教程》第11章 Groovy函数式编程(FP)
- 《Groovy极简教程》第12章 Groovy的JSON包
- 阿里云专家为你解读安全管家服务
- 《Spring Boot极简教程》第16章 Spring Boot安全集成Spring Security
- 《Spring Boot极简教程》第17章 Spring Boot集成日志
- 牛顿法与拟牛顿法
- 《Spring Boot开发:从0到1》第13章 常见问题与解决方案
- 关于百度COR文字识别JAVA服务器端设置
- 读《JavaScript 标准参考教程(alpha)阮一峰》(中)
- 《Spring Boot开发:从0到1》第11章 Spring Boot应用监控