如何处理从空手道特征文件到Java类的JSON转换?

问题描述 投票:0回答:1

我有一个空手道测试和这样的台词:

* 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 karate jsonparser
1个回答
0
投票

如果您有一个 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 具有相同的“形状”。

© www.soinside.com 2019 - 2024. All rights reserved.