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 = []
def gid_content = []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()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM