/json-everything

System.Text.Json-based support for all of your JSON needs.

Primary LanguageC#MIT LicenseMIT

Build & Test Test results Percentage of issues still open Average time to resolve an issue License

What is json-everything?

The primary philosophy behind json-everything is to ensure that common JSON functionality has good support in the System.Text.Json space.

The first step to that is checking whether there exist other projects that support a given function.

If so, that effort likely won't be duplicated here. A bit farther down you'll find a list of other projects that are doing some cool things with JSON.

Otherwise, it's open to consideration for this project.

Playground Documentation Blog
Try it online
json-everything.net
Try it online
docs.json-everything.net
Try it online
blog.json-everything.net
Discuss Ask Built with
Discuss on Slack Discuss on Slack Made with Jetbrains Resharper

What's in the box?

There are actually multiple boxes. Each piece of functionality has been broken out into its own library, so you can pick and choose the one(s) that you need.

JsonSchema.Net JSON Schema, drafts 6 and higher   NuGet version
NuGet version
JsonSchema.Net.Generation Generation of schemas from .Net types   NuGet version
NuGet version
JsonSchema.Net.CodeGeneration Generation of C# code from schemas (more languages to follow)   NuGet version
NuGet version
JsonSchema.Net.DataGeneration Random instance data generation (powered by Bogus)   NuGet version
NuGet version
JsonSchema.Net.Data A vocabulary for accessing instance and external data   NuGet version
NuGet version
JsonSchema.Net.UniqueKeys A vocabulary for validating item uniqueness based on specific item values   NuGet version
NuGet version
JsonSchema.Net.OpenApi OpenApi 3.1 vocabulary extension (used by Graeae)   NuGet version
NuGet version
JsonPath.Net JSON Path (IETF RFC in progress) (.Net Standard 2.1)   NuGet version
NuGet version
JsonPatch.Net JSON Patch (RFC 6902)   NuGet version
NuGet version
JsonPointer.Net JSON Pointer (RFC 6901) and Relative JSON Pointer (Specification)   NuGet version
NuGet version
JsonLogic JsonLogic (Website) (.Net Standard 2.1)   NuGet version
NuGet version
JsonE.Net JSON-e (Website)   NuGet version
NuGet version
Json.More.Net General-use extensions that probably should have been included in System.Text.Json[.Nodes] but weren't   NuGet version
NuGet version
Yaml2JsonNode Conversions between the YAML document model in YamlDotNet and JsonNode (both directions).   NuGet version
NuGet version

All of the above libraries offer complete support for their associated specifications.

Error message translations for JsonSchema.Net available in:

  • Norwegian nb-NO
  • Spanish es
  • Swedish sv-SE
  • Turkish tr-TR

NOTE Each language pack is provided by its own Nuget package.

You can also view JSON Schema Test Suite results on Bowtie, which runs the test suite against multiple implementations across different platforms.

DISCLAIMER My library, JsonSchema.Net, is not related to or associated with the website https://jsonschema.net, except that they are both excellent JSON Schema tools.

System.Text.Json support by other projects

If you don't find what you're looking for here, please try one of these excellent projects:

If you use JSON to do something that is not covered by a library in this suite or one of the above projects, feel free to create a feature issue.

If you have or know of another project that extends System.Text.Json to do cool things, I'd like to list it here, so please create a general issue to let me know about it.

Contributors

Please see the Code of Conduct and the CONTRIBUTING file for more information.