• Groovy中json的一些操作


    在测试过程中,尤其是接口自动化测试框架搭建时,经常会碰到 json 文件或者数据流的处理,下面看看json的一些处理实例:

    /**
     * @author :ZackZhou
     * @date :Created in 2020/9/7 5:49 PM
     * @description :Groovy Json 的一些操作
     * @modified By:
     * @version:
     */
    
    import groovy.json.JsonBuilder
    import groovy.json.JsonOutput
    import groovy.json.JsonSlurper
    
    def dids = ["1","2"]
    def gids =["1","2"]
    
    def did_content = new ArrayList<Map>()
    def gid_content = new ArrayList<Map>()
    
    for(did in dids)
    {
        def single = [:]
        single.put("deviceId","${did}")
        single.put("deviceSeri","")
        single.put("deviceType","")
    
        did_content.add(single)
    }
    
    for(gid in gids)
    {
        def single = [:]
        single.put("targetValue","${gid}")
        single.put("operator","2")
        single.put("classId","0")
        single.put("targetId","0")
    
        gid_content.add(single)
    }
    
    def did_json = new File("./did.json")
    def gid_json = new File("./gid.json")
    
    did_json.withWriter {
        writer ->
            ////将对象转成Json 方法1
            writer.write(JsonOutput.toJson(did_content))
    }
    
    gid_json.withWriter {
        writer ->
            ////将对象转成Json 方法1,但是使用 Category 功能
            writer.write(
                    use(JsonOutput)
                        {
                            gid_content.toJson() //Category功能,将方法toJson 加到了 gid_content 中
                        }
            )
    }
    
    
    //解析Json文件
    JsonSlurper jsonSlurper = new JsonSlurper()
    def did_list = jsonSlurper.parse(did_json)
    
    assert did_list instanceof List
    
    (List)did_list.each {
        item ->
            assert item instanceof Map
            (Map)item.each {
                k,v ->
                    println(k + ":" + v)
            }
    }
    
    //将对象转成Json 方法2
    JsonBuilder jsonBuilder = new JsonBuilder()
    jsonBuilder.content = did_list
    println jsonBuilder.toPrettyString()
  • 相关阅读:
    MYSQL5.6学习——mysqldump备份与恢复
    【转】分布式与集群的区别
    (四)伪分布式下jdk1.6+Hadoop1.2.1+HBase0.94+Eclipse下运行wordCount例子
    (三)配置Hadoop1.2.1+eclipse(Juno版)开发环境,并运行WordCount程序
    git pull总是要输入账号和密码
    Undefined index: validate(thinkphp)
    mysql table status
    如何学习web开发环境搭建和脚手架
    serversql tinkphp
    apache 配置
  • 原文地址:https://www.cnblogs.com/FsharpZack/p/13879349.html
Copyright © 2020-2023  润新知