暴力突破 Gradle 自动化项目构建(三)- Groovy 高级用法

一、前言


上一篇我们学习了 Groovy 的核心语法,我们这篇接下来看看 Groovy 的高级用法。

 

二、Groovy 高级用法


2.1、Json 操作

我们先来看看 groovy 中对象与 json 字符串之间的相互转换:

除此之外,我们也可以直接使用 java 的类库来操作 json,比如 java 的 gson 库。

下面我们来看个真实请求网络并解析返回 json 的例子:

 

2.2、XML文件

java 中处理 xml 文件有以下两种方式:

groovy 处理 xml 文件比 java 要简单很多,下面我们先写一段 xml :

final String xml = '''
<response version-api="2.0">
    <value>
        <books id="1" classification="android">
            <book available="20" id="1">
                <title>疯狂Android讲义</title>
                <author id="1">李刚</author>
            </book>
            <book available="14" id="2">
                <title>第一行代码</title>
                <author id="2">郭林</author>
            </book>
            <book available="13" id="3">
                <title>Android开发艺术探索</title>
                <author id="3">任玉刚</author>
            </book>
            <book available="5" id="4">
                <title>Android源码设计模式</title>
                <author id="4">何红辉</author>
            </book>
        </books>
        <books id="2" classification="web">
            <book available="10" id="1">
                <title>Vue从入门到精通</title>
                <author id="4">李刚</author>
            </book>
        </books>
    </value>
</response>
'''

我们来看看 groovy 中如何解析

可以看到,整个过程像在直接操作 xml 文件一样,非常方便。

下面我们看看 xml 遍历的方式:

groovy 中还有更简便的遍历,深度遍历和及广度遍历

在实际使用中,我们可以利用 XmlSlurper 在 Android 中获取 AndroidManifest.xml 里的信息,代码如下所示:

下面我们来看看如何生成 xml,先看静态生成:

在实际开发中,更常见的是根据实体中的数据动态生成 xml:

 如果要从服务器请求回来的 json 字符串转换为 xml 可以通过如下步骤,并且可以封装起来:

 

2.3、文件处理

java 中处理文件的核心就是流。下面我们来看看 groovy 中对文件有哪些操作,所有 java 对文件的处理类 groovy 都可以使用,并且 groovy 扩展了许多更加快捷和强大的方法。

遍历

实际使用中一般我们不会去这样遍历文件的内容,有更简单的方式获取文件内容

可以看到,相比 java 的复杂的流操作,groovy 的操作真的是特别简洁了。当然 groovy 中 file.getText() 的源码也是采用流操作,只是 groovy 讲它封装成一个方法便于我们使用,并且不用关注流的关闭。

读取文件部分内容:

下面我们再来看看拷贝文件的操作:

下面再看看对象的读写

 

三、总结


学完了 groovy 核心语法与高级用法,下面我们来总结下 groovy 与 java 的区别:

  • 写法上:没有 java 那么多的限制
  • 功能上:对 java 已有的功能进行了极大的扩展
  • 作用上:既可以编写应用,也可以编写脚本
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值