NJsonSchema icon indicating copy to clipboard operation
NJsonSchema copied to clipboard

Propagate item-level validation on string arrays from JSON schema to C# object model

Open palenshus opened this issue 4 years ago • 2 comments

I have a string array field which validates not only the length of the array, but the length of the strings in the array as well:

"Tags": {
      "type": "array",
      "minItems": 1,
      "maxItems": 16,
      "items": {
        "type": "string",
        "minLength": 1,
        "maxLength": 3
      }
    },

However, when converted to a C# OM, the per-item validation gets lost:

[Newtonsoft.Json.JsonProperty("Tags", Required = Newtonsoft.Json.Required.DisallowNull, NullValueHandling = Newtonsoft.Json.NullValueHandling.Ignore)]
[System.ComponentModel.DataAnnotations.MinLength(1)]
[System.ComponentModel.DataAnnotations.MaxLength(16)]
public System.Collections.Generic.ICollection<string> Tags { get; set; }

I don't have a bright idea on how this validation criteria could live in the .NET world, it's possible that there's no way to currently phrase that using the DataAnnotations, but I'm hoping to be surprised!

palenshus avatar Dec 08 '20 21:12 palenshus

but I'm hoping to be surprised!

:-) I dont have the answer, sorry.

We'd need to investigate...

RicoSuter avatar Feb 26 '21 14:02 RicoSuter

Any news on this?

esskar avatar Feb 18 '22 14:02 esskar