繁体   English   中英

空手道 - 如何解析响应包含 json 中的名称空间?

[英]Karate - How to parse response contain a name space in json?

我的空手道功能响应:

* def response = response
* print 'response is: ', response 

安慰:

   {
      "dd:PrepareMasterBookingRS": {
        "@Version": "1.27",
        "@TransactionID": "123456798",
        "dd:Success": {
        },
        "dd:AvailabilityResponse": {
          "dd:RoomStays": {
            "dd:RoomStay": [
              {
                "@RPH": "1",
                "dd:RoomTypes": {
                  "dd:RoomType": [
                    {
                      "@NumberOfUnits": "18",
                      "@RoomTypeCode": "R1123",
                      "dd:RoomDescription": {
                        "@Name": "C12N - vvvvvv 1-2 pers. 1 foo"
                      }
                    }
                  ]
                }
              }
            ]
          }
        }
      }
    }

我的空手道功能响应:

* def roomStay = response.dd:PrepareMasterBookingRS.dd:AvailabilityResponse.dd:RoomStays.dd:RoomStay[0];

我的控制台错误:

org.graalvm.polyglot.PolyglotException: SyntaxError: Unnamed:1:11 Expected ; but found :
response.dd:PrepareMasterBookingRS.dd:AvailabilityResponse.dd:RoomStays.dd:RoomStay[0];
           ^

- org.graalvm.polyglot.Context.eval(Context.java:401)
- com.intuit.karate.graal.JsEngine.evalForValue(JsEngine.java:141)
- com.intuit.karate.graal.JsEngine.eval(JsEngine.java:137)
- com.intuit.karate.core.ScenarioEngine.evalJs(ScenarioEngine.java:1252)
- com.intuit.karate.core.ScenarioEngine.evalKarateExpression(ScenarioEngine.java:2205)
- com.intuit.karate.core.ScenarioEngine.evalKarateExpression(ScenarioEngine.java:2124)
- com.intuit.karate.core.ScenarioEngine.evalAndCastTo(ScenarioEngine.java:1316)

JSON 键中的特殊字符必须以不同方式处理。 尝试这个:

* def roomstay = response['dd:PrepareMasterBookingRS']['dd:AvailabilityResponse']['dd:RoomStays']['dd:RoomStay'][0]

另请注意,您可以尝试这样的事情:

* def roomstay = $response..['dd:RoomStay']

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM