首页 > 解决方案 > 空手道如何解析字符串化的 json 响应

问题描述

我得到了这样的回应。

"{\"statusCode\":204,\"output\":\"{\\n  \\\"Id\\\" : \\\"884d39b8-4afc-4ee3-807a-9d6dbde8c390\\\",\\n  \\\"temp\\\" : \\\"33\\\",\\n  \\\"lastUpdateAuthor\\\" : null\\n}\"}"

我怎样才能解析这个响应并做类似的事情

* def expectedOutput = 
"""
{
      "Id": "884d39b8-4afc-4ee3-807a-9d6dbde8c390",
      "temp": "33",
      "lastUpdateAuthor": null
    }
  Scenario: Testing a PUT endpoint with request body
    Given path 'v0'
    And request input
    When method put
    Then match status 200
    And match JSON.parse(JSON.parse(response).output) == expectedOutput

空手道跳过了最后一行代码。

有输入吗?

标签: karate

解决方案


想通了。

* def expectedOutput = 
"""
{
  "Id": "884d39b8-4afc-4ee3-807a-9d6dbde8c390",
  "temp": "33",
  "lastUpdateAuthor": null
}
"""
  Scenario: Testing a PUT endpoint with request body
    Given path 'v0'
    And request input
    When method put
    Then match status 200
    And json convertJSON = $
    And json convertJSON = convertJSON.output
    And match convertJSON.latitude == expectedOutput

有效。


推荐阅读