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 |
---|---|---|
json-everything.net |
docs.json-everything.net |
blog.json-everything.net |
Discuss | Ask | Built with |
---|---|---|
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.
- JSON Schema, drafts 6 and higher (Specification)
- Generation of schemas from .Net types supported in an additional library
- Generation of C# code from schemas (more languages to follow)
- Random instance data generation (powered by Bogus)
- OpenApi 3.1 vocabulary extension
- A vocabulary for accessing instance and external data
- A vocabulary for validating item uniqueness based on specific item values
- JSON Path (RFC in progress) (.Net Standard 2.1)
- JSON Patch (RFC 6902)
- JsonLogic (Website) (.Net Standard 2.1)
- JSON Pointer (RFC 6901)
- Relative JSON Pointer (Specification)
- Json.More.Net
- Just some general-use extensions that probably should have been included in System.Text.Json(.Nodes) but weren't
- Yaml2JsonNode
- When you use YamlDotNet to parse YAML text, this library will convert it to
JsonNode
(and back) for you! Then you can use that data wherever you already have support forJsonNode
(like all of those ☝️).
- When you use YamlDotNet to parse YAML text, this library will convert it to
Error message translations for JsonSchema.Net available in:
- Spanish
es-es
- Norwegian
nb-no
- Swedish
sv-se
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.
If you don't find what you're looking for here, please try one of these excellent projects:
- JsonCons.Net by @danielaparker
- JSON Pointer
- JSON Patch
- JSON Merge Patch
- JSON Path
- JMES Path
- (more to come)
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.
Please see the Code of Conduct and the CONTRIBUTING file for more information.