Convert Java to JSON. Convert JSON to Java. Pretty print JSON. Java JSON serializer.

Related tags

JSON json-io
Overview

json-io

Maven Central Javadoc

Perfect Java serialization to and from JSON format (available on Maven Central). To include in your project:

<dependency>
  <groupId>com.cedarsoftware</groupId>
  <artifactId>json-io</artifactId>
  <version>4.12.0</version>
</dependency>

json-io consists of two main classes, a reader (JsonReader) and a writer (JsonWriter). json-io eliminates the need for using ObjectInputStream / ObjectOutputStream to serialize Java and instead uses the JSON format.

json-io does not require that Java classes implement Serializable or Externalizable to be serialized, unlike the JDK's ObjectInputStream / ObjectOutputStream. It will serialize any Java object graph into JSON and retain complete graph semantics / shape and object types. This includes supporting private fields, private inner classes (static or non-static), of any depth. It also includes handling cyclic references. Objects do not need to have public constructors to be serialized. The output JSON will not include transient fields, identical to the ObjectOutputStream behavior.

json-io does not depend on any 3rd party libraries, has extensive support for Java Generics, and allows extensive customization.

A few advantages of json-io over Google's gson library:

  • gson will fail with infinite recursion (StackOverflowError) when there is a cycle in the input data. Illustrated here.
  • gson cannot handle non-static inner classes. Illustrated here.
  • gson cannot handle hetereogeneous Collections, Object[], or Maps. Illustrated here.
  • gson cannot handle Maps with keys that are not Strings. Illustrated here.

Format

json-io uses proper JSON format. As little type information is included in the JSON format to keep it compact as possible. When an object's class can be inferred from a field type or array type, the object's type information is left out of the stream. For example, a String[] looks like ["abc", "xyz"].

When an object's type must be emitted, it is emitted as a meta-object field "@type":"package.class" in the object.
When read, this tells the JsonReader what class to instantiate. (@type output can be turned off - see User Guide).

If an object is referenced more than once, or references an object that has not yet been defined, (say A points to B, and B points to C, and C points to A), it emits a "@ref":n where 'n' is the object's integer identity (with a corresponding meta entry "@id":n defined on the referenced object). Only referenced objects have IDs in the JSON output, reducing the JSON String length.

Performance

json-io was written with performance in mind. In most cases json-io is faster than the JDK's ObjectInputStream / ObjectOutputStream. As the tests run, a log is written of the time it takes to serialize / deserialize and compares it to ObjectInputStream / ObjectOutputStream (if the static variable _debug is true in TestUtil).

User Guide

Pretty-Printing JSON

Use JsonWriter.formatJson() API to format a passed in JSON string to a nice, human readable format. Also, when writing JSON data, use the JsonWriter.objectToJson(o, args) API, where args is a Map with a key of JsonWriter.PRETTY_PRINT and a value of 'true' (boolean or String). When run this way, the JSON written by the JsonWriter will be formatted in a nice, human readable format.

RESTful support

json-io can be used as the fundamental data transfer method between a Javascript / JQuery / Ajax client and a web server in a RESTful fashion.

See json-command-servlet for a light-weight servlet that processes REST requests.

Noteworthy

For useful Java utilities, check out java-util

Featured on json.org.

Revision History


Sponsors

Alt text

YourKit supports open source projects with its full-featured Java Profiler. YourKit, LLC is the creator of YourKit Java Profiler and YourKit .NET Profiler, innovative and intelligent tools for profiling Java and .NET applications.

Intellij IDEA from JetBrains Intellij IDEA


License

Copyright (c) 2007 Cedar Software LLC.

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

by John DeRegnaucourt

Comments
  • java.lang primitives serialization - JDK-8256358 - JDK 17 support

    java.lang primitives serialization - JDK-8256358 - JDK 17 support

    Hi,

    In JDK 16 the default for illegal-access switched to deny (was permit) and in 17 this option was removed completely. For context see:

    • https://bugs.openjdk.java.net/browse/JDK-8256358
    • https://github.com/google/gson/issues/1916 (GSON has similar issue)

    Basically every java.lang class cannot be serialized anymore and will throw an java.lang.IllegalAccessException starting JDK16 (can be changed) and perm since JDK17.

    The Exception is silently ignored at https://github.com/jdereg/json-io/blob/master/src/main/java/com/cedarsoftware/util/io/JsonWriter.java#L2305

    I could create a custom writer to call "toString()" for any java.lang primitive, but thought it worth opening an issue to get insight in others thoughts so please respond.

    opened by mvangoor 12
  • About performance

    About performance

    I ran some benchmarks using JMH against a bunch of Java JSON libraries (jackson, gson, genson, org.json, etc.) and added json-io to my panel of tests and was very surprised (not to say chocked) about the performance of json-io.

    The results are here: https://github.com/fabienrenaud/java-json-benchmark

    json-io performs comparably to org.json...

    I read the readme documentation of json-io and couldn't find any hints about how to boost performance nor couldn't find anything I could use to get better result (and I want to :) ).

    Did I miss something?

    As I was using json-io, I noticed that although capable of dealing with POJOS, it doesn't surface any factories. Maybe those are hidden internally...

    Did you try to profile (i guess with YourKit?) the project to see if there isn't some obvious bottlenecks that can easily be fixed?

    enhancement question 
    opened by fabienrenaud 12
  • How load an object from son without @type

    How load an object from son without @type

    Hi,

    I am playing around with json-io, and I have an issue to create my java object. If I export my Java Object using JsonWriter.objectToJson, the JsonReader work fine, but because the json generated has the key @type.

    Unfortunately in my test I need to load a json not generated by json-io and I do not have the @type inside, but I know the type of the class I want. I tried different way using the map argument but so far I was not able to solve it.

    Any advice will be really nice.

    Thanks

    opened by wolfviking0 9
  • NullPointer when writing 2 objects

    NullPointer when writing 2 objects

    Version

    Concerns version json-io-2.6.0.

    Issue

    I would like to write 2 objects to a stream without closing it in-between. I get a NullPointerException when I write the second object.

    How to reproduce

    FileOutputStream fos = new FileOutputStream("test.bin");
    ObjectOutputStream oos = new ObjectOutputStream(fos);
    JsonWriter jwr = new JsonWriter(oos);
    
    jwr.write("Hello");
    jwr.write("World");
    

    On the second JsonWriter.write(Object o), I get the NullPointerException:

    Exception in thread "main" java.lang.NullPointerException
        at com.cedarsoftware.util.io.JsonWriter.getFieldsUsingSpecifier(JsonWriter.java:799)
        at com.cedarsoftware.util.io.JsonWriter.traceFields(JsonWriter.java:757)
        at com.cedarsoftware.util.io.JsonWriter.traceReferences(JsonWriter.java:740)
        at com.cedarsoftware.util.io.JsonWriter.write(JsonWriter.java:683)
        at Test.main(Test.java:19)
    

    Question

    Is it possible to write multiple objects with JsonWriter ? Is json-io designed to write multiple objects to stream, or am I missing something here? Is it also possible to read multiple objects with JsonReader?

    question 
    opened by franckysnow 9
  • Cannot deserialize type with generics

    Cannot deserialize type with generics

    Having the following code:

    public class ADouble<T> {
        private T field1;
        private T field2;
    
        public ADouble(T field1, T field2) {
            this.field1 = field1;
            this.field2 = field2;
        }
    }
    
    public class UseADouble {
        private ADouble<String> a;
    
        public UseADouble(ADouble<String> a) {
            this.a = a;
        }
    }
    

    And the following test:

        @Test
        public void testDouble() throws IOException {
            UseADouble o = new UseADouble(new ADouble<String>("1","2"));
    
            String json = JsonWriter.objectToJson(o);
    
            //this will crash on ArrayIndexOutOfBoundsException
            Object ha2 = JsonReader.jsonToJava(json);
    
            System.out.println(ha2);
    
        }
    

    The serialization works just fine:

    {"@type":"UseADouble","a":{"field1":"1","field2":"2"}}
    

    However trying to deserialize given JSON, I get an ArrayIndexOutOfBoundsException exception:

    java.io.IOException: ArrayIndexOutOfBoundsException setting field 'a' on target: UseADouble@e74e382 with value: {field1=1, field2=2}
    Last read: {"@type":"UseADouble","a":{"field1":"1","field2":"2"}}
    line: 1, col: 55
        at com.cedarsoftware.util.io.JsonReader.error(JsonReader.java:3296)
        at com.cedarsoftware.util.io.JsonReader.assignField(JsonReader.java:1947)
        at com.cedarsoftware.util.io.JsonReader.traverseFields(JsonReader.java:1815)
        at com.cedarsoftware.util.io.JsonReader.convertMapsToObjects(JsonReader.java:1347)
        at com.cedarsoftware.util.io.JsonReader.convertParsedMapsToJava(JsonReader.java:1286)
        at com.cedarsoftware.util.io.JsonReader.readObject(JsonReader.java:1246)
        at com.cedarsoftware.util.io.JsonReader.jsonToJava(JsonReader.java:1137)
        at HomeAwayTest.testDouble(HomeAwayTest.java:79)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
        at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
        at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
        at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
        at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:26)
        at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
        at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
        at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
        at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
        at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
        at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
        at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
        at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
        at org.junit.runner.JUnitCore.run(JUnitCore.java:160)
        at com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:67)
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
        at com.cedarsoftware.util.io.JsonReader.markUntypedObjects(JsonReader.java:2044)
        at com.cedarsoftware.util.io.JsonReader.assignField(JsonReader.java:1845)
        ... 28 more
    
    bug 
    opened by ludekdolejsky 8
  • serialize java Hashmap

    serialize java Hashmap

    hello ! i use json-io for some years now and want to update from json.io 2.4 to json-io 4 but there are some problems with the new serialization format of maps: the old forlmat was with @keys[,,,,],@items[...] this was the perfect format for serializing object to mongo. in the mongo you can't query map keys containing '.' . But with the old format there was no problem. it would be nice if we can switch between both formats

    help wanted 
    opened by thomasX 7
  • Doesn't work with non-ASCII characters on Windows

    Doesn't work with non-ASCII characters on Windows

    Characters are not correctly decoded if file.encoding is not UTF-8. On Windows, this is not the case.

    e.g. running this code with -Dfile.encoding=ISO-8859-1 and -Dfile.encoding=UTF-8 yields different results:

    String s1 = "\"Die gelbe Hölle\"";
    Object o = JsonReader.jsonToJava(s1);
    String s2 = JsonWriter.objectToJson(o);
    
    System.out.println(s1);
    System.out.println(s2);
    System.out.println(s1.equals(s2));
    
    opened by rednoah 7
  • Major (Minor) bugfixes

    Major (Minor) bugfixes

    Hi,

    we tried to integrate the latest version in our ecosystem, the following changes were needed to get it running.

    • Source Bundles are now 'osgified' (Therefore only dots are allowed as separators in the version)
    • Serialization with custom serializers now does not analyze objects which have a custom serializer
    • Using custom deserializers was broken
    • Fixed Testcases for using Custom De/Serializers

    Cheers

    Kai

    opened by KaiHufenbach 7
  • Feature request: add an optional fallback type parameter for the toplevel json container to JsonReader.jsonToJava(json);

    Feature request: add an optional fallback type parameter for the toplevel json container to JsonReader.jsonToJava(json);

    We give the possibility to specify http get parameters also as json strings, to allow class objects as parameter types for the web interfaces also.

    The problem is, by using json-io, specifying @type in the json string is mandatory for deserialization, right? Thus, the users have to specify it, which is not so nice (for the return values its fine of course, but for parameters?)

    I love the way json-io deals with types, for me, it is the best solution to support polymorphism I have seen in such a library. Nevertheless, in this case, the underlying type of the parameter normally not changes - it should be transparent for the (e.g. javascript) user of the interface who creates the json, and clear for the server.

    Is it possible to add another method to JsonReader.jsonToJava(String json, Class toplevelFallbackType) - where toplevelFallbackType could be also String, Type, etc. of course. This parameter would then be used as fallback if the @type was not specified in the toplevel json object. I know this would not work with polymorphism, but it would help us a lot and would be maybe a nice enhanchement of json-ios functionality:)

    Thanks and best regards

    Christian

    enhancement 
    opened by reuschling 7
  • Java 17 UUID can no longer be serialized and deserialized correctly

    Java 17 UUID can no longer be serialized and deserialized correctly

    on Java 17

    UUID uuid = UUID.randomUUID();
    JsonWriter.objectToJson(uuid);
    

    Produces:

    {"@type":"java.util.UUID","mostSigBits":null,"leastSigBits":null}

    Restoring the original state is not possible from this.

    Java 8 and 11 works perfectly.

    Deserialization will fail on mostSigBits detailMessage: IllegalAccessException setting field 'mostSigBits' on target: 00000000-0000-0000-0000-000000000000 with value: null cause: java.lang.IllegalAccessException: class com.cedarsoftware.util.io.ObjectResolver cannot access a member of class java.util.UUID (in module java.base) with modifiers "private final"

    opened by h143570 6
  • Allow tolerant/lenient parser of +/- infinity and NaN

    Allow tolerant/lenient parser of +/- infinity and NaN

    Hi,

    I know JSON norms does not accept these value, but in our project, we need to have NaN or Infinity, as this is provided by our scientific data. Maybe we shouldn't have used Json, but now we would like to have a Json Parser a bit more lenient, as the Gson parser, that with a configuration, can read and write NaN and +/- infinity. Thank you!

    opened by antoinetran 6
  • Map<String, Object> typed serialization broken for Integer

    Map typed serialization broken for Integer

    Concerning Issue #119 # Problem seems to still be there. In JsonWriter.writeCollectionElement() only boolean, double and long are written as primitives. Int uses writeImpl and converts it to an object.

    public static void main(String[] args) {
    		HashMap<String,Object> map = new HashMap<>();
    		map.put("int", 1);
    		map.put("long", 2l);
    		String json = JsonWriter.objectToJson(map);
    		System.out.println(json);
    }
    

    Results in: {"@type":"java.util.HashMap","int":{"@type":"int","value":1},"long":2}

    opened by gunmiosb 0
  • Added record deserialization, which implies java 16 codebase

    Added record deserialization, which implies java 16 codebase

    Hello,

    I added support for correct java Records de-serialization, as I mentioned here.

    These are the changes I made:

    • pom.xml: Switched to a more recent version of the groovy-compiler which supports also Java 16. This one is sadly not in maven central yet, so I added the groovy repo as additional maven source
    • Added a new check in Resolver.java whether the current object is a Record (as it is currently with enums). The check is with class.isRecord() which was added at Java 16, thus the need of Java 16 codebase
    • Added a method getRecord(..) that creates the final Record Object. As Records are immutable, Record creation can only be done by passing the parameters to the constructor. The method makes sure that the parameter order is correct
    • Still after Object creation, json-io tried to set the parameters, which is not possible on the final, immutable Record members. Thus, I added a simple anonymous base reader in JsonReader.java that simply returns our yet finished Object
    • For compilation of some groovy tests in Intellij Idea, I had to add some casts to get no compilation errors with the new compiler setting. This was strange for me as non-groovy developer, as compilation with maven in the shell was fine.
    • Added a new small test class 'TestRecords.java' to test the functionality

    I know it would be an issue if json-io is only usable with java code>=16. Maybe there exists a workaround with reflections, or even better with a multi release jar (also nice with maven). Nevertheless this would be one working solution for supporting java records.

    opened by reuschling 5
  • Unmarshalling of provided XMLGregorianCalendar implementation class

    Unmarshalling of provided XMLGregorianCalendar implementation class

    Hi, we are using json-io to temporarily store java objects as text values for later processing. In particular, we store webservice request java objects, some of them contain datetime fields of type org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl, which is an XMLGregorianCalendar implementation provided by the application server. json-io fails to unmarshall these fields, returning LinkedHashMap instead of XMLGregorianCalendarImpl. It seems Metautils are not able to see the XMLGregorianCalendarImpl class. As a solution, I added MetaUtils.getNameToClass() method (it returns the private Map<String, Class> nameToClass), then I used it to register the dynamically detected class of the XMLGregorianCalendar implementation class (which is XMLGregorianCalendarImpl). I also provided an instantiator.

         static {
            MetaUtils.getNameToClass().put(
                "org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl",
                (new XMLGregorianCalendarClassFactory()).newInstance(null, null).getClass()
            );
    
            JsonReader.assignInstantiator(
                "org.apache.xerces.jaxp.datatype.XMLGregorianCalendarImpl",
                new XMLGregorianCalendarClassFactory());
        }
    
        public static class XMLGregorianCalendarClassFactory implements JsonReader.ClassFactoryEx {
            @Override
            public Object newInstance(Class aClass, Map map) {
                try {
                    return DatatypeFactory.newInstance().newXMLGregorianCalendar();
                } catch (DatatypeConfigurationException e) {
                    throw new RuntimeException(e);
                }
            }
        }
    

    Is this the right way to do this in json-io? Would you consider adding MetaUtils.getNameToClass() (or sth similar) to MetaUtils?

    Thank you, Regards,

    Peter

    opened by pm-finamis 2
  • Provide feature to serializer only fields having given access modifier

    Provide feature to serializer only fields having given access modifier

    I want to serialize fields with specific access modifier for all the classes. Currently there is no way to specify it. In jackson JSON mapper there is option to specify field visibility for serialization.

    Example:

    public class TestA {
        private int a;
        protected int b;
        public int c;
    }
    

    To serialize only protected fields for all classes:

    Map<String, Object> jsonWriterArgs = new HashMap<>();
    jsonWriterArgs.put(JsonWriter.FIELD_VISIBILITY, FieldVisibility.PROTECTED);  
    // this will serialize integer b
    

    To serialize only protected+public fields for all classes:

    Map<String, Object> jsonWriterArgs = new HashMap<>();
    jsonWriterArgs.put(JsonWriter.FIELD_VISIBILITY, FieldVisibility.PROTECTED | FieldVisibility.PUBLIC);  
    // this will serialize integer b and integer c
    
    opened by xeronix 5
  • Error in JsonWriter.formatJson() for enum

    Error in JsonWriter.formatJson() for enum

    public class TestClass {
        private int a;
        private TestEnum enumObj;
        
        public TestClass() {
            a = 10;
            enumObj = TestEnum.GREEN;
        }
    }
    
    public enum TestEnum {
        GREEN;
    }
    

    Following code fails:

    TestClass obj = new TestClass();
    String objStr = JsonWriter.objectToJson(obj);
    JsonWriter.formatJson(objStr)
    

    Exception in thread "main" com.cedarsoftware.util.io.JsonIoException: Class 'com.ifn.dev.TestEnum' does not have primitive wrapper.

    If i pass the pretty print argument then it works fine:

    Map<String, Object> jsonWriterArgs = new HashMap<>();
    jsonWriterArgs.put(JsonWriter.PRETTY_PRINT, true);      
    String objStr = JsonWriter.objectToJson(obj);
    

    I am using JDK 8.

    opened by xeronix 1
  • Enum serialization error with Java 17

    Enum serialization error with Java 17

    I have created a test scenario, with an enum and a class with a field typed to this enum.

    public enum SimpleEnum {
        ONE, TWO
    }
    
    (...)
    
    public class SimpleClass {
        private final String name;
        private final SimpleEnum myEnum;
    
        public SimpleClass(String name, SimpleEnum myEnum) {
            this.name = name;
            this.myEnum = myEnum;
        }
    
        public String getName() {
            return name;
        }
    
        public SimpleEnum getMyEnum() {
            return myEnum;
        }
    }
    

    When I try to serialize this class with Java 17, the enum value is serialized to null

    SimpleClass mc = new SimpleClass("MyName", SimpleEnum.ONE);
    System.out.println(JsonWriter.objectToJson(mc));
    

    output: {"@type":"myPackage.SimpleClass","name":"MyName","myEnum":{"name":null}}

    opened by bergerdenes 3
Owner
John DeRegnaucourt
John DeRegnaucourt
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
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
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
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
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
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 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
A fast JSON parser/generator for Java.

fastjson Fastjson 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 str

Alibaba 25.1k Dec 31, 2022
Sawmill is a JSON transformation Java library

Update: June 25, 2020 The 2.0 release of Sawmill introduces a breaking change to the GeoIpProcessor to comply with the updated license of the MaxMind

Logz.io 100 Jan 1, 2023
Genson a fast & modular Java <> Json library

Genson Genson is a complete json <-> java conversion library, providing full databinding, streaming and much more. Gensons main strengths? Easy to use

null 212 Jan 3, 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
Fast JSON parser for java projects

ig-json-parser Fast JSON parser for java projects. Getting started The easiest way to get started is to look at maven-example. For more comprehensive

Instagram 1.3k Dec 26, 2022
A JSON Schema validation implementation in pure Java, which aims for correctness and performance, in that order

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 LGP

Java Json Tools 1.5k Jan 4, 2023
Lean JSON Library for Java, with a compact, elegant API.

mJson is an extremely lightweight Java JSON library with a very concise API. The source code is a single Java file. The license is Apache 2.0. Because

Borislav Iordanov 77 Dec 25, 2022
A compiler built in Java that allows to translate xml format to json.

A compiler built in Java that allows to translate xml format to json. Getting Started Welcome to the VS Code Java world. Here is a guideline to help y

Víctor Andrés Rojas 1 Jan 6, 2022
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
Elide is a Java library that lets you stand up a GraphQL/JSON-API web service with minimal effort.

Elide Opinionated APIs for web & mobile applications. Read this in other languages: 中文. Table of Contents Background Documentation Install Usage Secur

Yahoo 921 Jan 3, 2023