- October 5, 2024 - 1.4.2 released after a long hiatus. Fixes memory leak problem, a security vulnerability and doc lint warnings during build.
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 of its tiny size, it's well-suited for any application aiming at a small footprint such as mobile/Android applications.
It was originally developed in the context of the OpenCiRM project. There is a graph database based persistent layer for mJson implemented at the HyperGraphDB Project. This means you can transparently persist and query JSON documents like in document-oriented databases (MongoDB, CouchDB), but you don't have split documents into separate collection or create special purposes indices since all documents and properties are automatically interlinked.
- Full support for JSON Schema Draft 4 validation
- Single universal type - everything is a
Json
, no type casting - Single factory method, no new operators, just call
Json.make(anything here)
- Fast, hand-coded parsing
- Designed as a general purpose data structure for use in Java
- Parent pointers and
up
method to traverse the JSON structure - Concise methods to read (
Json.at
), modify (Json.set
,Json.add
), duplicate (Json.dup
), merge (Json.with
) - Methods for type-check (e.g.
Json.isString()
) and access to underlying Java value (e.g.Json.asString()
) - Method chaining
- Pluggable factory to build your own support for arbitrary Java<->Json mapping
- 1 Java file is the whole library with no external dependencies
Go see a Complete Tour of the API
Read my tutorial blog on JSON Schema
(get in touch if you want to help!)
- Traversal API, with pattern-matching
- Extend JSON Schema support for template generation