A JSON Schema validation implementation in pure Java, which aims for correctness and performance, in that order

Overview

License LGPLv3 License ASL 2.0 Build Status Maven Central

Read me first

The current version of this project is licensed under both LGPLv3 (or later) and ASL 2.0. The old version (2.0.x) was licensed under LGPL 3.0 (or later) only.

Version 2.2 is out. See here for the list of changes compared to 2.0. And of course, it still has all the features of older versions.

What this is

This is an implementation with complete validation support for the latest JSON Schema draft (v4, including hyperschema syntax support) and the previous draft (v3 -- no hyperschema support though). Its list of features would be too long to enumerate here; please refer to the links above!

Should you wonder about it, this library is reported to work on Android. Starting with version 2.2.x, all APK conflicts have been resolved, so you can use this in this context as well.

Google Group

This project has a dedicated Google group. For any questions you have about this software package, feel free to post! The author (me) will try and respond in a timely manner.

Testing online

You can test this library online; this web site is in a project of its own, which you can fork and run by yourself.

Versions

Available downloads

Gradle/maven

This package is available on Maven central; the artifact is as follows:

Gradle:

dependencies {
    compile(group: "com.github.java-json-tools", name: "json-schema-validator", version: "2.2.14");
}

Maven:

<dependency>
    <groupId>com.github.java-json-tools</groupId>
    <artifactId>json-schema-validator</artifactId>
    <version>2.2.14</version>
</dependency>

"Full" jar; command line

OUTDATED: Let me know if you need this in the issues section.

This jar contains the library plus all its dependencies. Download the lib jar (a little more than 6 MiB) from Bintray.

Versioning scheme policy

The versioning scheme is defined by the middle digit of the version number:

  • if this number is even, then this is the stable version; no new features will be added to such versions, and the user API will not change (save for some additions if requested).
  • if this number is odd, then this is the development version; new features will be added to those versions only, and the user API may change.

Relevant documents

This implementation is based on the following drafts:

More...

For a detailed discussion of the implementation, see here.

Please see the wiki for more details.

Comments
  • Is there a way to print a schema with references resolved?

    Is there a way to print a schema with references resolved?

    Hi,

    I'm not having any issues with SchemaNode and validation, but I would like a way to print my SchemaNode with $ref resolved. An example of this is on http://www.jsonschema.net/ where they can pretty print the Json Schema in JSON format.

    Is there any way to do this with json-schema-validator's SchemaNode or SchemaTree?

    Thanks!

    feature question 
    opened by kelvinpho 65
  • Possible to customize messages?

    Possible to customize messages?

    As far as i can see, all error messages are stored as enumerations and cannot be modified via any configuration? Is this correct?

    For example, changing the message from 'input is not a valid email address' to 'The value you have entered is not a valid email address'.

    Thanks!

    feature 
    opened by dsjellz 45
  • Offline validation

    Offline validation

    Hi,

    Firstly, thanks for creating this library.

    I'm trying to validate some JSON data against a schema I have. I am getting the "a parent schema's id must be absolute" error.

    If I make the schema id absolute, such as using a "http://" URI, my problem then becomes that I am using offline tests.

    I now want to be able to get hold of the the URIManager and override the "http" downloader, in order to resolve the URIs myself to local files, but all the fields I seem to need to access are private and final.

    Can you offer any advice please?

    Thanks.

    opened by gitgrimbo 34
  • Relative URLs over http and file don't seem to work.

    Relative URLs over http and file don't seem to work.

    Issue

    I have been working to make our Schema project more robust and allow it to be used offline and online. Your validator is the best, but I can't seem to get it tor validate a linked relative uri schema.

    I have looked at your "Example 5" and have also written two tests against our schema as a test. The issue it that I would like set the namespace depending on how I want to use the schema files. It would be really nice to be able to checkout the whole schema repository and set the namespace to a specific file, or if I wanted to set the namespace to be on the public website, I could do that too.

    Tests

    Here is the test I wrote: https://github.com/spidasoftware/schema/blob/cee/utils/test/groovy/com/spidasoftware/schema/validation/ConceptualSchemaTest.groovy

    Here is the base schema file: https://github.com/spidasoftware/schema/blob/cee/v1/spidacalc/calc/point.schema that references two other files.

    Am I doing something totally wrong, or is this a bug?

    opened by toverly 26
  • Invalid extended schema is validated as correct

    Invalid extended schema is validated as correct

    Lastest version: 1.4.1 Error explanation:

    • Define a schema1 that is an extension from draftv3 and that add a new property, 'indexed', that is declared as boolean.
    • Define an new schema using schema1, schema2. The value for property 'indexed' is 111.
    • The validator should give an error, since for property 'indexed' only a boolean value should be allowed.

    Code:

    import java.io.File;
    import java.io.IOException;
    
    import com.fasterxml.jackson.databind.JsonNode;
    import org.eel.kitchen.jsonschema.main.JsonSchema;
    import org.eel.kitchen.jsonschema.main.JsonSchemaFactory;
    import org.eel.kitchen.jsonschema.report.ValidationReport;
    import org.eel.kitchen.jsonschema.util.JsonLoader;
    
    public class JsonSchemaTest {
    
      public static void main(String[] args) {
        try {
            JsonNode draftv3 = JsonLoader.fromResource("/draftv3/schema");
            JsonNode schema1 = JsonLoader.fromFile(new File("schema1.json"));
            JsonNode schema2 = JsonLoader.fromFile(new File("schema2.json"));
    
            ValidationReport report;
    
            JsonSchemaFactory factory = JsonSchemaFactory.defaultFactory();
            JsonSchema draftv3Schema = factory.fromSchema(draftv3);
            report = draftv3Schema.validate(schema1);
            if (!report.isSuccess())
                System.out.println("Schema1: " + report.asJsonObject());
    
            JsonSchema schema1Schema = factory.fromSchema(schema1);
            report = schema1Schema.validate(schema2);
            if (!report.isSuccess())
                System.out.println("Schema2: " + report.asJsonObject());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
      }
    }
    

    The schema1.json file is

    {
     "extends" : {
        "$ref" : "http://json-schema.org/draft-03/schema#"
       },
      "properties" : {
      "indexed" : {
         "type" :  "boolean",
         "default" : false
       }
     }
    }
    

    The schema2.json is

    {
     "type" : "object",
     "properties" : {
       "from" :  {
          "type" : "string",
          "required" : true,
          "indexed" : 111
       }
      }
    }
    
    opened by asargento 25
  • JsonSchemaFactoryBuilder not able to create a JsonSchemaFactory in Android

    JsonSchemaFactoryBuilder not able to create a JsonSchemaFactory in Android

    JsonSchemaFactoryBuilder factoryBuilder = JsonSchemaFactory.newBuilder();

    throws an exception " android zygoteinit$methodandargscaller "

    http://developer.oesf.biz/em/developer/reference/durian/com/android/internal/os/ZygoteInit.MethodAndArgsCaller.html

    android sdk details:

    target sdk is 19 min sdk version is 14

    opened by ascoril 24
  • Generate Java classes from JSON Schema

    Generate Java classes from JSON Schema

    Hi,

    can the library fge/json-schema-validator generate Java classes from a JSON Schema? otherwise, is it planned to add this feature some time soon?

    if not, can you suggest a solution? I've read about "jsonschema2pojo". is that a good solution?

    best regards, David

    feature 
    opened by dportabella 24
  • Error in extended schemas

    Error in extended schemas

    I was performing some tests of json-schema-validator and found the following behavior. I defined the following schema

    { "extends":{"$ref" : "http://json-schema.org/draft-03/schema#"}, "properties":{ "indexed":{"type": "boolean", "default":false} } }

    and after that I try the validate the next schema.

    { "type" : "object", "properties" : { "from" : { "type" : "string", "indexed":111 } } }

    It should give an error, since Indexed is a boolean property and not a integer. And it don't. The schema is validated and is considered correct.

    bug 
    opened by asargento 24
  • JsonLoader.class.getResource() method throws IOException for /draft4/schema not found

    JsonLoader.class.getResource() method throws IOException for /draft4/schema not found

    Hi,

    I am using json-schema-validation library in WSO2 ESB. I copied all the required jars in WSO2ESB_HOME/repository/components/lib and when I run my code, it always fail in the above call SchemaVersion.java calls JsonLoader.fromResource(resource) (line no 69). I am using json-schema-validation version 2.2.0

    < [2014-05-20 13:29:32,614] ERROR - NativeWorkerPool Uncaught exception java.lang.ExceptionInInitializerError at com.github.fge.jsonschema.SchemaVersion.(SchemaVersion.java:66) at com.github.fge.jsonschema.SchemaVersion.(SchemaVersion.java:44) at com.github.fge.jsonschema.core.load.configuration.LoadingConfigurationBuilder.(LoadingConfigurationBuilder.java:117) at com.github.fge.jsonschema.core.load.configuration.LoadingConfiguration.byDefault(LoadingConfiguration.java:151) at com.github.fge.jsonschema.main.JsonSchemaFactoryBuilder.(JsonSchemaFactoryBuilder.java:67) at com.github.fge.jsonschema.main.JsonSchemaFactory.newBuilder(JsonSchemaFactory.java:121) at com.github.fge.jsonschema.main.JsonSchemaFactory.byDefault(JsonSchemaFactory.java:111) at com.zeomega.services.mediator.validator.json.Validator.validate(Validator.java:40) at com.zeomega.services.mediator.validator.json.JsonValidator.mediate(JsonValidator.java:56) at org.apache.synapse.mediators.ext.ClassMediator.mediate(ClassMediator.java:78) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:77) at org.apache.synapse.mediators.AbstractListMediator.mediate(AbstractListMediator.java:47) at org.apache.synapse.mediators.base.SequenceMediator.mediate(SequenceMediator.java:131) at org.apache.synapse.core.axis2.ProxyServiceMessageReceiver.receive(ProxyServiceMessageReceiver.java:166) at org.apache.axis2.engine.AxisEngine.receive(AxisEngine.java:180) at org.apache.synapse.transport.passthru.ServerWorker.processNonEntityEnclosingRESTHandler(ServerWorker.java:344) at org.apache.synapse.transport.passthru.ServerWorker.processEntityEnclosingRequest(ServerWorker.java:385) at org.apache.synapse.transport.passthru.ServerWorker.run(ServerWorker.java:183) at org.apache.axis2.transport.base.threads.NativeWorkerPool$1.run(NativeWorkerPool.java:172) at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) at java.lang.Thread.run(Unknown Source) Caused by: java.io.IOException: resource /draftv4/schema not found at com.github.fge.jackson.JsonLoader.fromResource(JsonLoader.java:69) at com.github.fge.jsonschema.SchemaVersion.(SchemaVersion.java:64)

    Any help in this regards will be helpful. Let me know if I need to provide any other information.

    Regards, Ritesh

    bug 
    opened by hminds-ritesh 21
  • Using JSON schema with an array of mixed object types

    Using JSON schema with an array of mixed object types

    as far as I understand - this should be a valid schema:

    { "type" : "array", "items" : { "type" : [ { "type" : "object", "properties" : { "name" : { "type" : "string" }}}, { "type" : "object", "properties" : { "price" : { "type" : "number" } } } ] } }

    but it comes out as invalid in the schema validator is this a bug? or it's actually invalid? thanks!

    question 
    opened by ettig 17
  • Is it possible to add line number into the Report?

    Is it possible to add line number into the Report?

    It's different to locate the error in current Report format as follows for large JSON file. Is it possible to add line number into Report to denote which line is the pointer(schema or instance)?

    com.github.fge.jsonschema.report.ListProcessingReport: failure--- BEGIN MESSAGES ---error: instance type does not match any allowed primitive type level: "error" schema: {"loadingURI":"#","pointer":"/properties/version"} instance: {"pointer":"/version"} domain: "validation" keyword: "type" expected: ["integer"] found: "number" --- END MESSAGES ---

    Thanks, Hai

    feature 
    opened by feiniao0308 16
  • Bump error_prone_core from 2.3.3 to 2.17.0

    Bump error_prone_core from 2.3.3 to 2.17.0

    Bumps error_prone_core from 2.3.3 to 2.17.0.

    Release notes

    Sourced from error_prone_core's releases.

    Error Prone 2.17.0

    New Checkers:

    Fixed issues: #2321, #3144, #3297, #3428, #3437, #3462, #3482, #3494

    Full Changelog: https://github.com/google/error-prone/compare/v2.16...v2.17.0

    Error Prone 2.16.0

    New Checkers:

    Fixed issues: #3092, #3220, #3225, #3267, #3441

    Full Changelog: https://github.com/google/error-prone/compare/v2.15.0...v2.16

    Error Prone 2.15.0

    New Checkers:

    Fixed issues: #1562, #3236, #3245, #3321

    Full Changelog: https://github.com/google/error-prone/compare/v2.14.0...v2.15.0

    Error Prone 2.14.0

    New checkers:

    ... (truncated)

    Commits
    • 27de40b Release Error Prone 2.17.0
    • bcf4dcf Optimize checks that report exactly the same fix in multiple diagnostics, lik...
    • 8ddb7cb Record Error Prone initialization time
    • 1d23141 Do the expensive bit last in UnusedMethod.
    • e360257 Fix yet another NonCanonicalType crash
    • 5768290 Make UnusedMethod recognize com.google.acai annotations, com.google.caliper.B...
    • 7340bdf Audit EP checks for argumentless mock().
    • b92c9b1 Rip out GuardedBy:CheckMemberReferences.
    • 63fb30b Have InvalidLink provide a hint about erasure if it sees < in an invalid meth...
    • 4a5fd7b Suppress FieldCanBeLocal based on unused prefices.
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump biz.aQute.bnd.gradle from 4.2.0 to 6.4.0

    Bump biz.aQute.bnd.gradle from 4.2.0 to 6.4.0

    Bumps biz.aQute.bnd.gradle from 4.2.0 to 6.4.0.

    Release notes

    Sourced from biz.aQute.bnd.gradle's releases.

    Bnd/Bndtools 6.4.0

    Release Notes

    See Release Notes.

    What's Changed

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • Bump net.ltgt.errorprone from 0.8.1 to 3.0.1

    Bump net.ltgt.errorprone from 0.8.1 to 3.0.1

    Bumps net.ltgt.errorprone from 0.8.1 to 3.0.1.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies java 
    opened by dependabot[bot] 0
  • draftv4/schema is different between json-schema-validator 2.2.14 and json-schema-core 1.2.14

    draftv4/schema is different between json-schema-validator 2.2.14 and json-schema-core 1.2.14

    Hi, we noticed this when bumping to json-schema-validator 2.2.14, we use duplicate-finder-maven-plugin to track jar hell (we build a fat jar) and it appears that the draftv4/schema resource is slightly different in these two projects:

    --- json-schema-core-1.2.14-draftv4
    +++ json-schema-validator-2.2.14-draftv4
    @@ -28,10 +28,12 @@
         "type": "object",
         "properties": {
             "id": {
    -            "type": "string"
    +            "type": "string",
    +            "format": "uri"
             },
             "$schema": {
    -            "type": "string"
    +            "type": "string",
    +            "format": "uri"
             },
             "title": {
                 "type": "string"
    @@ -135,7 +137,6 @@
                     }
                 ]
             },
    -        "format": { "type": "string" },
             "allOf": { "$ref": "#/definitions/schemaArray" },
             "anyOf": { "$ref": "#/definitions/schemaArray" },
             "oneOf": { "$ref": "#/definitions/schemaArray" },
    

    Thanks!

    opened by nomoa 0
  • When JSONObject contains JSONArray, JSONArray's object can not be validated

    When JSONObject contains JSONArray, JSONArray's object can not be validated

    like this

            JSONObject jsonObject = new JSONObject();
    
             jsonObject.put("v1", "v1");
            JSONArray array = new JSONArray();
    
            //wrong 
            JSONObject object2 = new JSONObject();
            object2.put("o", "o2");
            array.add(object2);
    
            //right
            JSONObject object1 = new JSONObject();
            object1.put("o", 123);
            array.add(object1);
            jsonObject.put("array", array);
    

    isSuccess = false.

            JSONObject jsonObject = new JSONObject();
             jsonObject.put("v1", "v1");
            JSONArray array = new JSONArray();
    
            //right
            JSONObject object1 = new JSONObject();
            object1.put("o", 123);
            array.add(object1);
    
            //wrong 
            JSONObject object2 = new JSONObject();
            object2.put("o", "o2");
            array.add(object2);
             jsonObject.put("array", array);
    

    isSuccess = right

    opened by Endwas 0
Releases(v2.2.14)
  • v2.2.14(May 27, 2020)

  • v2.2.13(Jan 8, 2020)

    • Bump Guava to 28.2-android
    • Bump json-schema-core to 1.2.13
    • Bump mailapi to 1.6.2
    • Bump joda-time to 2.10.5
    • Bump libphonenumber to 8.11.1
    • Bump jopt-simple to 5.0.4
    • Bump testng to 7.1.0
    • Bump mockito-core to 2.28.2
    Source code(tar.gz)
    Source code(zip)
  • v2.2.12(Jan 6, 2020)

    • Updated Gradle to 5.6.3.
    • Source and build compatibility switched to Java 7
    • Bumped json-schema-core to 1.2.12
    • Bumped libphonenumber to v8.10.22
    • Bumped Guava to 28.1-android.
    • Replaced OSGi plugin with biz.aQute.bnd. (commit 4558a00)
    Source code(tar.gz)
    Source code(zip)
Generate Java types from JSON or JSON Schema and annotates those types for data-binding with Jackson, Gson, etc

jsonschema2pojo jsonschema2pojo generates Java types from JSON Schema (or example JSON) and can annotate those types for data-binding with Jackson 2.x

Joe Littlejohn 5.9k Jan 5, 2023
Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.

json-io Perfect Java serialization to and from JSON format (available on Maven Central). To include in your project: <dependency> <groupId>com.cedar

John DeRegnaucourt 303 Dec 30, 2022
MapNeat is a JVM library written in Kotlin that provides an easy to use DSL (Domain Specific Language) for transforming JSON to JSON, XML to JSON, POJO to JSON in a declarative way.

MapNeat is a JVM library written in Kotlin that provides an easy to use DSL (Domain Specific Language) for transforming JSON to JSON, XML to JSON, POJ

Andrei Ciobanu 59 Sep 17, 2022
A simple java JSON deserializer that can convert a JSON into a java object in an easy way

JSavON A simple java JSON deserializer that can convert a JSON into a java object in an easy way. This library also provide a strong object convertion

null 0 Mar 18, 2022
JSON to JSON transformation library written in Java.

Jolt JSON to JSON transformation library written in Java where the "specification" for the transform is itself a JSON document. Useful For Transformin

Bazaarvoice 1.3k Dec 30, 2022
Essential-json - JSON without fuss

Essential JSON Essential JSON Rationale Description Usage Inclusion in your project Parsing JSON Rendering JSON Building JSON Converting to JSON Refer

Claude Brisson 1 Nov 9, 2021
A 250 lines single-source-file hackable JSON deserializer for the JVM. Reinventing the JSON wheel.

JSON Wheel Have you ever written scripts in Java 11+ and needed to operate on some JSON string? Have you ever needed to extract just that one deeply-n

Roman Böhm 14 Jan 4, 2023
A reference implementation of a JSON package in Java.

JSON in Java [package org.json] Click here if you just want the latest release jar file. Overview JSON is a light-weight language-independent data int

Sean Leary 4.2k Jan 6, 2023
JSON-LD implementation for Java

JSONLD-Java is looking for a maintainer JSONLD-JAVA This is a Java implementation of the JSON-LD 1.0 specification and the JSON-LD-API 1.0 specificati

null 362 Dec 3, 2022
High performance JVM JSON library

DSL-JSON library Fastest JVM (Java/Android/Scala/Kotlin) JSON library with advanced compile-time databinding support. Compatible with DSL Platform. Ja

New Generation Software Ltd 835 Jan 2, 2023
High-performance JSON parser

HikariJSON A High-performance JSON parser. HikariJSON is targeted exclusively at Java 8. If you need legacy support, there are several decent librarie

Brett Wooldridge 454 Dec 31, 2022
A Java serialization/deserialization library to convert Java Objects into JSON and back

Gson Gson is a Java library that can be used to convert Java Objects into their JSON representation. It can also be used to convert a JSON string to a

Google 21.7k Jan 8, 2023
A universal types-preserving Java serialization library that can convert arbitrary Java Objects into JSON and back

A universal types-preserving Java serialization library that can convert arbitrary Java Objects into JSON and back, with a transparent support of any kind of self-references and with a full Java 9 compatibility.

Andrey Mogilev 9 Dec 30, 2021
A JSON Transmission Protocol and an ORM Library for automatically providing APIs and Docs.

?? 零代码、热更新、全自动 ORM 库,后端接口和文档零代码,前端(客户端) 定制返回 JSON 的数据和结构。 ?? A JSON Transmission Protocol and an ORM Library for automatically providing APIs and Docs.

Tencent 14.4k Dec 31, 2022
A modern JSON library for Kotlin and Java.

Moshi Moshi is a modern JSON library for Android and Java. It makes it easy to parse JSON into Java objects: String json = ...; Moshi moshi = new Mos

Square 8.7k Dec 31, 2022
Java libraries for serializing, deserializing, and manipulating JSON values

java-json-toolkit The json-toolkit repository contains the code to the following libraries: json-toolkit-text: basic library for conversion between te

d-coding GmbH 2 Jan 26, 2022
Screaming fast JSON parsing and serialization library for Android.

#LoganSquare The fastest JSON parsing and serializing library available for Android. Based on Jackson's streaming API, LoganSquare is able to consiste

BlueLine Labs 3.2k Dec 18, 2022
JSON query and transformation language

JSLT JSLT is a complete query and transformation language for JSON. The language design is inspired by jq, XPath, and XQuery. JSLT can be used as: a q

Schibsted Media Group 510 Dec 30, 2022
Framework for serialization to Json, XML, Byte and Excel, therefore an oviparous wool milk sow J

NetworkParser Framework for serialization from Java objects to Json, XML and Byte. NetworkParser is a simple framework for serializing complex model s

Fujaba Tool Suite 4 Nov 18, 2020