zoukankan      html  css  js  c++  java
  • 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()
  • 相关阅读:
    java中this()、super()的用法和区别
    线段树基础操作
    普通平衡树的基础操作
    简单dp问题汇总
    欧拉线性筛法打表素数
    单调队列与dp的关系
    最全的常用正则表达式大全——包括校验数字、字符、一些特殊的需求等等
    常用chrome扩展程序
    各种数据类型的字节数
    排查mysql的奇怪问题
  • 原文地址:https://www.cnblogs.com/FsharpZack/p/13879349.html
Copyright © 2011-2022 走看看