使用 JSON 模式文件存储没有值的失败文件

Fail Files that have no value stored using JSON Schema file

我有使用模式文件验证 .json 文件的代码。 我正在尝试验证值列表。 但是如果文件有一个“NO_DATA”、“EMPTY”或“NULL”存储为一个值,我想要 Splunk_Status = Data_JSON.IsValid(Schema) 为假。

我目前拥有的架构文件:

"MN": {
    "Type": "string",
    "pattern": "[A-Z0-9]{14}",
},

文件失败:

{
  "MN": "NO_DATA",
}

要传递的文件(它不必具有确切的模式,只需要不为空即可):

{
"MN": "FS40-SR20D4-2C00W",
}

VB.net代码:

schemaConn = ConfigurationManager.ConnectionStrings("LOCAL_SPLUNK_SCHEMA_PATH")
schema_path = schemaConn.ToString
            Schema_String = My.Computer.FileSystem.ReadAllText(schema_path)
extra_str = backup_path
Schema = JsonSchema.Parse(Schema_String)
step_str = "Validate JSON File Data Using Schema"
Data_String = My.Computer.FileSystem.ReadAllText(Splunk_Info.FullName)
Data_JSON = JObject.Parse(Data_String)
Splunk_Status = Data_JSON.IsValid(Schema)
System.Threading.Thread.Sleep(1000)
Console.WriteLine("SPLUNK VALIDATE: " + Splunk_Status.ToString)
If Splunk_Status = True Then
    File_Validation = True
    Console.WriteLine("File Location = " + Splunk_Info.FullName)
    GoTo Jump_ValidateHeader
Else
    File_Validation = False
    GoTo Jump_ValidateHeader
End If

您可以通过组合 notenum 关键字来禁止某些值:

"not": {
  "enum": [ "NO_DATA", "EMPTY", "NULL" ]
}

您可以在此处阅读有关这些关键字的信息: