9

私は次のようなjsonスキーマを持っています:

{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "title": "Operation",
  "description": "The schema of an operation",
  "type": "object",
  "properties": {
    "id":{
      "description": "Unique identifier of the service",
      "type": "string"
    },
    "description":{
      "type": "string"
    },
    "dateDebut":{
      "type": "string",
      "format": "date-time"
    },
    "dateFin":{
      "type": "string",
      "format": "date-time"
    }
  }
}

dateFinが よりも大きくなければならないことをスキーマでどのように言えますdateDebutか?

4

2 に答える 2

17

このライブラリはそれをサポートしてい ます https://github.com/epoberezkin/ajv#features

var ajv = Ajv({v5:true,allErrors: true})

{
    "startDate": {
        "format": "date",
        "message": "Please Enter correct date format YYYY-MM-DD"
    },
    "endDate": {
        "format": "date",
        "message": "Please Enter correct date format YYYY-MM-DD",
        "formatMinimum": {
            "$data": "1/startDate"
        }
    }
}
于 2016-04-26T13:03:39.977 に答える
7

JSON スキーマ レベルでそれを行うことはできません。オブジェクトに対して個別に検証する必要がありOperationます。一般に、JSON-Schema は一種の「整形式であること」の健全性チェックのみを提供します。プロパティが数値、日付、または正規表現に一致する文字列であることについて。または、プロパティの特定の入れ子構造を持つオブジェクトについて。あなたの例のようなより高度なビジネス ルールは、他の場所で制御する必要があります。

于 2014-11-13T10:22:47.010 に答える