RicoSuter/NJsonSchema

Extra commas are considered valid

Open

#942 建立於 2019年4月3日

在 GitHub 查看
 (2 留言) (0 反應) (0 負責人)C# (550 fork)github user discovery
help wantedtype: enhancement

倉庫指標

Star
 (1,578 star)
PR 合併指標
 (30 天內沒有已合併 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.

貢獻者指南