【问题标题】:How do i validate a dynamic JSON key?如何验证动态 JSON 密钥?
【发布时间】:2019-04-12 18:18:35
【问题描述】:
    {
    "id": "aghysfgagaw365",
    "MetricLevelId": "4890718305",
    "level": "BUB",
    "type": "Mash",
    "summary": {
    "counts": [
    {},
    {
    "label": {},
    "value": 2674,
    "labelLoc": {
    "192706": {
    "ADD": 8977,
    "DEL": 3257,
    "Count": 59
    },
    "543419": {
    "ADD": 0,
    "DEL": 0,
    "Count": 1
         }
      }
     }
    ]
   }
  }

我阅读了文档,但我仍然不清楚要验证这样的复杂 API。验证此 API 的演示将帮助我解决其他 API 验证问题...尤其是这个具有动态 JSON 密钥的演示。如何在“192706”为动态的情况下验证 ADD、DEL 和 Cont。

【问题讨论】:

    标签: json karate


    【解决方案1】:

    从文档中,请参阅 JsonPath 上的文档。还推荐的是“JSON 转换”部分。这是一种方法:

    * def response =
    """
    {
       "id": "aghysfgagaw365",
       "MetricLevelId": "4890718305",
       "level": "BUB",
       "type": "Mash",
       "summary": {
          "counts": [
             {
    
             },
             {
                "value": 2674,
                "labelLoc": {
                   "192706": {
                      "ADD": 8977,
                      "DEL": 3257,
                      "Count": 59
                   },
                   "543419": {
                      "ADD": 0,
                      "DEL": 0,
                      "Count": 1
                   }
                }
             }
          ]
       }
    }
    """
    * def label = get[0] response..labelLoc
    * def vals = get label.*
    * match each vals == { ADD: '#number', DEL: '#number', Count: '#number' }
    

    编辑也可以:

    * json keys = label.keySet()
    * match keys == ['192706', '543419']
    

    【讨论】:

    • 这会帮助我托马斯。谢谢!
    • '192706', '543419' 不是静态的,它们每小时都会改变,但我希望我可以在那里使用#number。
    猜你喜欢
    • 2023-03-30
    • 2014-06-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 2022-01-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多