Skip to content

kamellcuba/mjson

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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.

Features

  • 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

API Tour

Go see a Complete Tour of the API

Read my tutorial blog on JSON Schema

Wish List

(get in touch if you want to help!)

  1. Traversal API, with pattern-matching
  2. Extend JSON Schema support for template generation

Goto mJson Official Website

About

Lean JSON Library for Java, with a compact, elegant API.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Java 100.0%