我有一个空手道测试和这样的台词:
* def schema = read('schema.json')
* def response = read('response.json')
And def jsonValidator = Java.type('feature.JsonValidator').isValid(parseSchema, response)
但是当我发送该架构时,它是 json 文件而不是
{
"properties": {
"debtor": {
"example": 1,
"type": "integer"
},
"creditor": {
"example": 2,
"type": "integer"
},
"currency": {
"example": 3,
"type": "integer"
}
},
"type": "object"
}
在Java代码中我得到的就像
{properties={debtor={example=1, type=integer}, creditor={example=2, type=integer}, currency={example=3, type=integer}}, type=object}
我读到空手道出于某种原因将 JSON 文件转换为 Java 中的 Map 或 List。但是如何在 Java 类中拥有正确的 JSON 呢?
如果您有一个 Java 类,它是 有效的 Java Bean,您可以使用
karate.toBean()
将 JSON 转换为 Java 实例。
你可以看看这个例子:
* def catType = 'com.intuit.karate.demo.domain.Cat'
* def Cat = Java.type(catType)
* def toCat = function(x){ return karate.toBean(x, catType) }
# second argument (true) is to strip keys with null values
* def toJson = function(x){ return karate.toJson(x, true) }
JSON 预计与 Java bean 具有相同的“形状”。