[英]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.