在json Groovy Katalon Studio中解析json

问题描述 投票:1回答:1

我有一个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。我想知道是否有可能捕获“运动”中的所有数据,我试图使用这个脚本:

JsonSlurper slurper = new JsonSlurper()
Map parsedJson = slurper.parseText(bodyContent)
String parsed_movements = parsedJson["movements"]

解析单个字符串没有问题,比如statementId或startPointer,但是当我尝试使用我的脚本解析运动时,它会将结果显示为null。我也尝试过parsedJson [“moves”] [0]来捕捉第一个动作,但它也给了我一个错误。

我已经在互联网上找到了很多关于json解析器的东西,也发现了堆栈溢出,但我找不到什么。我真的不认为这是一个重复的问题。

编辑:我试图声明也将每个对象放在数组中:def movements_array = []

for(def i = 0; i < parsedJson.movements.size(); i++) {
    movements_array << parsedJson.movements[i].id
    println(movements_array)
}

但是它给了我一个错误:无法在null对象上调用方法size(),因为parsedJson.movements为null。

json groovy katalon-studio jsonslurper
1个回答
2
投票

当你这样做时:

String parsed_movements = parsedJson["movements"]

你将地图粘贴到一个字符串中,这不是你想要的。

鉴于你问题中的json,你可以做到

def movementIds = new JsonSlurper().parseText(bodyContents).movements.id

获取[65, 1, 32]列表

如果您正在获得NPE,我认为json不是您在问题中显示的内容

© www.soinside.com 2019 - 2024. All rights reserved.