首页 > 解决方案 > 使用json解析Java测试数据处理

问题描述

在我们的自动化框架中,我们正在处理 JSON 文件中的测试数据。下面是示例文件

{
    "Sheet1": [
        {
            "id": "1",
            "firstname": "test",
            "lastname": "last",
            "email": "jpenddreth0@census.gov",
            "gender": "female",
            "ip_address": "26.58.193.2"
        },
        {
            "id": "2",
            "firstname": "test2",
            "lastname": "last2",
            "email": "gfrediani1@senate.gov",
            "gender": "male",
            "ip_address": "229.179.4.212"
        }
    ]
}

首先,我们将 JSON 文件转换为 MapObject,我们将从地图中读取数据。

def getObjectKeyValueInTheMapList(fileName,objectName,key) {
        def keyValue = []
        Map jsonMap = new LinkedHashMap() 
        jsonMap = converJsonToMapObject(fileName)
        def getKey = jsonMap.get(objectName)            
    }

获取密钥返回

[[email:jpenddreth0@census.gov, firstname:test, gender:female, id:1, ip_address:26.58.193.2, lastname:last], [email:gfrediani1@senate.gov, firstname:test2, gender:male, id:2, ip_address:229.179.4.212, lastname:last2]]

从上面的地图,我怎样才能得到email关键值id =1

即如果id = 1那时我想阅读email / firstname /lastname

标签: javajsongroovy

解决方案


您有一个地图列表,目标是找到带有 id==1. 如果您必须更频繁地执行此操作,那么最好的方法是以更好的方式塑造您的数据,以便通过id.

id例如,使用类似的东西建立用户地图

def usersById = data.collectEntries{ [it.id, it] }

然后usersById[1]会给你的地图id==1


推荐阅读