RicoSuter/NJsonSchema

Extra commas are considered valid

オープン

#942 opened on 2019/04/03

 (2 件のコメント) (0 件のリアクション) (0 人の担当者)C# (549 件のフォーク)github user discovery
help wantedtype: enhancement

Repository metrics

Stars
 (1,581 個のスター)
PR merge metrics
 (平均マージ 39d 6h) (30d で 1 merged PR)

説明

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.

コントリビューターガイド