JSON-схема Karatedsl завершилась с ошибкой "все значения ключа не совпадают" - PullRequest
0 голосов
/ 04 декабря 2018

Я попробовал функцию из karatedsl, такую ​​как json-schema ... Например, у меня есть файл json, содержащий:

{
  "level": "info",
  "event": "biller.purchase",
  "credential": "MallOn_v2",
  "package": "aaaa",
  "id": 41658,
  "customer_id": "088810000000",
  "elapsed_time": 201,
  "transactionbillerid": 39124,
  "paramrequest": {
    "amount": "10000",
    "customer_id": "088810000000",
    "partner_name": "MallOn_v2"
  },
  "parsedresponse": {
    "desc": "SUCCESS",
    "rescode": "0",
    "status": "success",
    "transactionID": "511644294"
  },
  "responsecode": "00",
  "price": 10000,
  "amount": 10000,
  "time": "2018-11-29T19:06:04.757550"
}

и я сопоставляю этого сына следующим образом:

  • def json = read ('biller_log2.json')
  • Тогдасоответствует json ==

"""
        {
          "level": '#string',
          "event": '#string',
          "credential": '#string',
          "package": '#string',
          "id": 'number',
          "customer_id": '#string',
          "elapsed_time": '#number',
          "transactionbillerid": '#number',
          "paramrequest": {
            "amount": '#string',
            "customer_id": '#string',
            "partner_name": '#string'
          },
          "parsedresponse": {
            "desc": '#string',
            "rescode": '#string',
            "status": '#string',
            "transactionID": '#string'
          },
          "responsecode": '#string',
          "price": '#number',
          "amount": '#number',
          "time": '#string'
      }
    """

но я получаю сообщение об ошибке "причина: все значения ключей не совпадают", как это исправить ??

1 Ответ

0 голосов
/ 04 декабря 2018

Ваша схема имеет одно неверное значение, вызывающее эту ошибку,

id должно быть "#number", а не "number"

Модифицированная схема:

""" 
{
 "level": '#string',
  "event": '#string', 
  "credential": '#string',
  "package": '#string',
  "id": '#number', 
  "customer_id": '#string',     
  "elapsed_time": '#number',
  "transactionbillerid": '#number',
  "paramrequest": { 
  "amount": '#string', 
  "customer_id": '#string',      
  "partner_name": '#string' 
  }, 
 "parsedresponse": {
   "desc": '#string',
   "rescode": '#string', 
   "status": '#string', 
   "transactionID": '#string'
 }, 
 "responsecode": '#string',
 "price": '#number', 
 "amount": '#number', 
 "time": '#string' 
} 
"""
...