簡體   English   中英

驗證JSON模式以獲取已知值列表

[英]Validate JSON Schema for list of known values

我的代碼中有一個特殊的枚舉案例,需要對其進行驗證:

{
  "status": 10
}

讓我們使用這個虛構的有效值列表:

var valid = [10, 20, 23, 27];

如何更改JSON架構以驗證這些值之一?

{
  type: 'object',
  required: ['status'],
  properties: {
    status: { type: number },
  }
}

您只需將status屬性定義為一個enum

{
    "type" : "object",
    "required" : ["status"],
    "properties" : {
        "status" : {
            "type" : "number",
            "enum" : [10, 20, 23, 27]
        }
    }
}

如果我理解正確,我認為您將不得不遍歷所有值,因為Javascript沒有像枚舉之類的東西。

var validValues = [ 10, 20, 23, 27 ];
var statusType = json.properties.status.type;

/* This function call will return a boolean that tells you wether the value in your json is valid or not.*/
isValid( statusType ); 

function isValid( statusType )
{
  for( var i = 0; i < validValues.length; i++ )
    if( statusType === validValues[i] )
      return true;

  return false;
}

我將示例簡化了一些,但您會發現我的意思。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM