【问题标题】:Trying to filter json object for a single value collection in Karate API Test Framework尝试在空手道 API 测试框架中过滤单个值集合的 json 对象
【发布时间】:2021-12-31 13:57:03
【问题描述】:

我这里有一个 JSON 对象

  • 默认响应 = """ [ { 名称:'xyz', “工作”: [ “工作1” ], “状态”:“已完成”, “进度”:100 }, { 名称:'xyz1', “工作”: [ “工作2” ], “状态”:“已完成”, “进度”:100 } ] """

我想使用“作业”过滤 json 并显示如下

            {
                name: 'xyz1',
                "jobs": [
                    "JOB2"
                ],
                "status": "COMPLETED",
                "progress": 100
            }

谁能帮帮我?

【问题讨论】:

  • 抱歉您的问题不清楚。你是什​​么意思“使用工作过滤”。你读过文档吗? github.com/karatelabs/karate#jsonpath-filters
  • @PeterThomas 示例 json: { { "jobs": [ "INSURANCE1" ], "status": "COMPLETED", "progress": 100 },{ "jobs": [ "INSURANCE2" ] , "status": "COMPLETED", "progress": 100 } } 我需要这样 { "jobs": [ "INSURANCE2" ], "status": "COMPLETED", "progress": 100 }
  • 我仍然不知道,但我的回答会很模糊。顺便说一句,JSON 无效
  • @PeterThomas,这是实际的 JSON [ { "jobs": [ "INSURANCE1" ], "status": "COMPLETED", "progress": 100, "logDetails": [ ], " websocket": true }, { "jobs": ["INSURANCE2" ], "status": "COMPLETED", "progress": 100, "logDetails": [ ], "websocket": true }, { "jobs": [“保险3”],“状态”:“完成”,“进度”:100,“logDetails”:[],“websocket”:真}]
  • 请澄清您的具体问题或提供更多详细信息以准确突出您的需求。正如目前所写的那样,很难准确地说出你在问什么。

标签: json api karate


【解决方案1】:

解决办法如下:

* def filtered = response.filter(x => x.jobs[0] == 'JOB2')
* print filtered
* def first = filtered[0]

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-03-20
  • 2023-03-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多