RicoSuter/NJsonSchema

Extra commas are considered valid

Open

#942 aberto em 3 de abr. de 2019

Ver no GitHub
 (2 comments) (0 reactions) (0 assignees)C# (550 forks)github user discovery
help wantedtype: enhancement

Métricas do repositório

Stars
 (1.578 stars)
Métricas de merge de PR
 (Nenhuma PRs mesclada em 30d)

Description

I'm using the latest NJsonSchema NuGet package version 9.13.28.

NJsonSchema catches some JSON errors (for example, two commas in a row), but it does not catch the case where there is an extra, trailing comma. For example:

   static void Main()
   {
      var jsonSchemaText =
@"{
  ""$schema"": ""http://json-schema.org/draft-07/schema#"",
  ""type"": ""object"",
  ""title"": ""Test"",
  ""properties"": {
    ""hello"": {
      ""type"": ""string""
    }
  }
}";
      var jsonText =
@"{
  ""hello"": ""world"",
}";
      var schema = JsonSchema4.FromJsonAsync(jsonSchemaText).Result;
      var errors = schema.Validate(jsonText);
   }

Notice the extra comma after "world". NJsonSchema does not report any errors and doesn't throw an exception. https://jsonschemalint.com, for example, correctly reports that the JSON document is invalid. Is there a way to enable a "strict" JSON mode in NJsonSchema? This is important, because having the extra comma in the JSON string will crash the Python parser, for instance.

Guia do colaborador