在 json Groovy Katalon Studio 中解析 json
Parsing json in json Groovy Katalon Studio
我得到了一个 JSON 文本,我应该对其进行解析,但出于某种原因我无法解析它,因为它里面有另一个数组。我的 JSON 看起来像这样:
{
"statementId": "1",
"movements": [
{
"id": 65,
"date": "2019-02-05",
"number": 32,
"balance": -4.62,
"purpose": "1"
},
{
"id": 1,
"date": "2019-02-05",
"number": 22,
"balance": -3,
"purpose": "23"
},
{
"id": 32,
"date": "2019-02-05",
"number": 12,
"balance": -11,
"purpose": "2"
}
],
"startPointer": "1122",
"endPointer": "3333"
}
我正在使用 JsonSlurper。我想知道是否可以捕获 "movements" 中的所有数据,我尝试使用这个脚本:
JsonSlurper slurper = new JsonSlurper()
Map parsedJson = slurper.parseText(bodyContent)
String parsed_movements = parsedJson["movements"]
我在解析单个字符串(如 statementId 或 startPointer)时没有问题,但是当我尝试使用我的脚本解析移动时,它给我的结果为 null。我也尝试过 parsedJson["movements"][0] 来捕捉第一个动作,但它也给了我一个错误。
我在互联网上和 Whosebug 上找到了很多关于 json 解析器的东西,但没有找到我想要的。我真的不认为这是一个重复的问题。
编辑: 我也尝试将每个对象放入数组中,如下所示:
def movements_array = []
for(def i = 0; i < parsedJson.movements.size(); i++) {
movements_array << parsedJson.movements[i].id
println(movements_array)
}
但它给了我一个错误:无法在空对象上调用方法 size(),因为 parsedJson.movements 是空的。
当你这样做时:
String parsed_movements = parsedJson["movements"]
您将地图粘贴到字符串中,这不是您想要的。
鉴于你问题中的json,你可以这样做
def movementIds = new JsonSlurper().parseText(bodyContents).movements.id
获取列表[65, 1, 32]
如果您收到 NPE,我认为 json 不是您在问题中显示的内容
我得到了一个 JSON 文本,我应该对其进行解析,但出于某种原因我无法解析它,因为它里面有另一个数组。我的 JSON 看起来像这样:
{
"statementId": "1",
"movements": [
{
"id": 65,
"date": "2019-02-05",
"number": 32,
"balance": -4.62,
"purpose": "1"
},
{
"id": 1,
"date": "2019-02-05",
"number": 22,
"balance": -3,
"purpose": "23"
},
{
"id": 32,
"date": "2019-02-05",
"number": 12,
"balance": -11,
"purpose": "2"
}
],
"startPointer": "1122",
"endPointer": "3333"
}
我正在使用 JsonSlurper。我想知道是否可以捕获 "movements" 中的所有数据,我尝试使用这个脚本:
JsonSlurper slurper = new JsonSlurper()
Map parsedJson = slurper.parseText(bodyContent)
String parsed_movements = parsedJson["movements"]
我在解析单个字符串(如 statementId 或 startPointer)时没有问题,但是当我尝试使用我的脚本解析移动时,它给我的结果为 null。我也尝试过 parsedJson["movements"][0] 来捕捉第一个动作,但它也给了我一个错误。
我在互联网上和 Whosebug 上找到了很多关于 json 解析器的东西,但没有找到我想要的。我真的不认为这是一个重复的问题。
编辑: 我也尝试将每个对象放入数组中,如下所示: def movements_array = []
for(def i = 0; i < parsedJson.movements.size(); i++) {
movements_array << parsedJson.movements[i].id
println(movements_array)
}
但它给了我一个错误:无法在空对象上调用方法 size(),因为 parsedJson.movements 是空的。
当你这样做时:
String parsed_movements = parsedJson["movements"]
您将地图粘贴到字符串中,这不是您想要的。
鉴于你问题中的json,你可以这样做
def movementIds = new JsonSlurper().parseText(bodyContents).movements.id
获取列表[65, 1, 32]
如果您收到 NPE,我认为 json 不是您在问题中显示的内容