在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
本章介绍了如何使用Groovy语言来解析和生成JSON对象。 JSON功能
使用JsonSlurper解析数据JsonSlurper是一个将JSON文本或阅读器内容解析为Groovy数据结构的类,如地图,列表和原始类型,如Integer,Double,Boolean和String。 句法def slurper = new JsonSlurper() JSON slurper将文本或阅读器内容解析为列表和地图的数据结构。 JsonSlurper类自带了一些用于解析器实现的变体。有时,在解析某些字符串时,您可能有不同的要求。让我们举一个例子,其中需要读取从Web服务器的响应返回的JSON。在这种情况下,使用解析器JsonParserLax变量是有益的。此parsee允许在JSON文本中的注释以及没有引号字符串等。要指定此类型的解析器,您需要在定义JsonSlurper的对象时使用JsonParserType.LAX解析器类型。 让我们看下面这个例子。示例是使用http模块从Web服务器获取JSON数据。对于这种类型的遍历,最好的选择是将解析器类型设置为JsonParserLax变体。 http.request( GET, TEXT ) { headers.Accept = 'application/json' headers.'User-Agent' = USER_AGENT response.success = { res, rd -> def jsonText = rd.text //Setting the parser type to JsonParserLax def parser = new JsonSlurper().setType(JsonParserType.LAX) def jsonResp = parser.parseText(jsonText) } } 类似地,以下附加的解析器类型在Groovy中可用 -
文本解析让我们来看看一些如何使用JsonSlurper类的例子。 import groovy.json.JsonSlurper class Example { static void main(String[] args) { def jsonSlurper = new JsonSlurper() def object = jsonSlurper.parseText('{ "name": "John", "ID" : "1"}') println(object.name); println(object.ID); } } 在上面的例子中,我们是 -
以上程序的输出如下 - John 1 解析整数列表让我们来看看另一个JsonSlurper解析方法的例子。在下面的示例中,我们将列出整数列表。你会注意到下面的代码,我们可以使用每个的List方法,并传递一个闭包。 import groovy.json.JsonSlurper class Example { static void main(String[] args) { def jsonSlurper = new JsonSlurper() Object lst = jsonSlurper.parseText('{ "List": [2, 3, 4, 5] }') lst.each { println it } } } 以上程序的输出如下 - List=[2, 3, 4, 5, 23, 42] 解析基本数据类型列表JSON解析器还支持字符串,数字,对象,true,false和null的原始数据类型。 JsonSlurper类将这些JSON类型转换为相应的Groovy类型。 以下示例显示如何使用JsonSlurper解析JSON字符串。在这里,您可以看到JsonSlurper能够将各个项目解析为各自的基本类型。 import groovy.json.JsonSlurper class Example { static void main(String[] args) { def jsonSlurper = new JsonSlurper() def obj = jsonSlurper.parseText ''' {"Integer": 12, "fraction": 12.55, "double": 12e13}''' println(obj.Integer); println(obj.fraction); println(obj.double); } } 以上程序的输出如下 - 12 12.55 1.2E+14 JsonOutput现在让我们谈谈如何在Json中打印输出。这可以通过JsonOutput方法来完成。此方法负责将Groovy对象序列化为JSON字符串。 句法Static string JsonOutput.toJson(datatype obj) 参数 -参数可以是数据类型的对象 - 数字,布尔,字符,字符串,日期,地图,闭包等。 返回类型 -返回类型是一个JSON字符串。 例子以下是如何实现这一点的简单示例。 import groovy.json.JsonOutput class Example { static void main(String[] args) { def output = JsonOutput.toJson([name: 'John', ID: 1]) println(output); } } 以上程序的输出如下 - {"name":"John","ID":1} JsonOutput也可以用于普通的旧Groovy对象。在下面的示例中,您可以看到我们实际上是传递Student类型的对象到JsonOutput方法。 import groovy.json.JsonOutput class Example { static void main(String[] args) { def output = JsonOutput.toJson([ new Student(name: 'John',ID:1), new Student(name: 'Mark',ID:2)]) println(output); } } class Student { String name int ID; } 以上程序的输出如下 - [{"name":"John","ID":1},{"name":"Mark","ID":2}] |
请发表评论