Courses & TutorialsProgramming

Awesome JSON – Massive Collection of Resources

A curated list of awesome JSON libraries and resources.

Applications

OS X

  • Visual JSON (github) – simple JSON pretty-viewer for Mac OS X.
  • JSONExport – convert a object to a class of one of the currently supported languages.

Binary Serialization

  • BSON – Binary JSON.
  • MessagePack – An extremely efficient object serialization library.
  • UBJSON – The universally compatible format specification for binary JSON.
  • CBOR – Concise Binary Object Representation.
  • PSON – Protocol JSON, super efficient binary serialization format.

Browser Extensions

Chrome

Firefox

Safari

  • JSONAce (github) – Formats & syntax highlights JSON viewed inside of the web browser using the ACE editor.
  • JSONView (github) – A port of the JSONView Firefox extension that formats and syntax highlights JSON viewed inside of the browser

Command-line tools

  • fx – A interactive terminal tool.
  • jo – A small utility to create JSON objects
  • jsoncat – Pretty-print Json in terminal with colors and adjusting tabs size.
  • jq – A lightweight and flexible command-line JSON processor.
  • json – A “json” command for massaging JSON on your Unix command line.
  • jshon – A parser designed for maximum convenience within the shell.
  • jarg – Shorthand JSON and form encoding syntax in the shell.
  • jsawk – Like awk, but for JSON.
  • json-dotenv – Manipulate and extract envfiles in json format.
  • gron – Convert a JSON file into discrete assignments that are greppable.
  • jid – Incremental Digger. Drill down JSON interactively by using filtering queries like jq.
  • jiq – It’s jid with jq. You can drill down interactively by using jq filtering queries.
  • jv – jv (for jsonviewer) helps you view your JSON.
  • jl – Functional sed for JSON.
  • oj – A fast and flexible command line JSON processor.
  • visidata – A terminal spreadsheet-like tool for interactively exploring data.

Databases

  • MongoDB – an open-source document database, and the leading NoSQL database.
  • RethinkDB – An open-source distributed document database with a pleasant and powerful query language.
  • EJDB – Embedded JSON Database engine published under MIT license. (C)
  • lowdb – Flat file database built on lodash API. (Javascript)
  • Lawnchair – A lightweight clientside document store. (Javascript)
  • JSON ODM – Object document mapper for JavaScript to use on the server or in the browser. (Javascript)
  • JSON Server – Get a full fake REST API with zero coding in less than 30 seconds.
  • Kinto – A lightweight JSON storage service with synchronisation and sharing abilities.
  • CouchDB – Seamless multi-master sync, that scales from Big Data to Mobile, with an Intuitive HTTP/JSON API and designed for Reliability.
  • RxDB – Event-driven JSON-Database with JSON-Schema, mango-Query and CouchDB-sync. (Javascript)
  • JSONlite – A simple, self-contained, serverless, zero-configuration, json document store. (Bash)

Datasets

  • country.io – Various country related datasets, as JSON inc currency, country codes, names and more
  • countries – World countries.
  • vat-rates – VAT rates for all EU countries.
  • MTG JSON – Up to date Magic the Gathering card data.
  • Heartstone JSON – Up to date Hearthstone card data.
  • getCountries() – Generator for custom Countries data.

Data modeling

  • JSONModel – Magical Data Modelling Framework. (Objective-C)

Data generation

  • jsonymize – Reads data from standard input, anonymizes, then writes to standard output.
  • dyson – Server for dynamic, fake JSON. (node.js)

Differencing

  • JSONPatch – A format for describing changes to a document.
  • JSON-Patch – Lean and mean Javascript implementation of the JSON-Patch standard (RFC 6902). (Javascript)
  • jiff – JSON Patch and diff based on rfc6902. (Javascript)
  • json-patch-php – implementation of JSON-patch (IETF RFC 6902) (PHP)
  • dffptch – A micro library for diffing and patching using a compact diff format. (Javascript)
  • jsondiffpatch – Diff & patch for JavaScript objects. (Javascript)

Editors

  • FrontAid CMS – Content Management System that supports arbitrary data model structures.
  • JSONEdit – User friendly, visual editor built as an AngularJS directive.

Format Extensions

  • GeoJSON – A geospatial data interchange format.
  • JSON-LD – A lightweight Linked Data format.
  • JSON-RPC – A stateless, light-weight remote procedure call (RPC) protocol.
  • JSONP – Safer cross-domain Ajax with JSON-P/JSONP.
  • JsonML – A compact format for transporting XML-based markup as JSON which allows it to be losslessly converted back to its original form.
  • JSON5 – a extension that aims to make it easier for humans to write and maintain by hand.
  • JSON6 – JSON for Humans (ES6).
  • JSON 1.1/JSONX – An evolved version 1.1 with format extension for humans incl. comments, unquoted and multi-line strings, optional and trailing commas and more.
  • JSON Resume – The open source initiative to create standard for resumes.
  • JSON Web Tokens – A compact URL-safe means of representing claims to be transferred between two parties.
  • JSON API – A standard for building APIs.
  • Collection+JSON – A read/write hypermedia-type designed to support management and querying of simple collections.
  • hal-json – A set of conventions for expressing hyperlinks in either JSON or XML.
  • JSON Activity Streams – A format for syndicating social activities around the web.
  • JSON-stat – Simple lightweight format for data dissemination.
  • /contribute.json – Making open source contribution information easier to access, across projects.
  • JSON Table Schema – a simple schema for tabular data
  • NDJSON (Newline delimited JSON) – a standard for delimiting JSON in stream protocols.
  • survey.js – JSON based survey library.
  • JSON Meta Application Protocol (JMAP) – A protocol for synchronising JSON-based data objects efficiently, with support for push and out-of-band binary data upload/download.
  • JackSON: JSON secret keeper – JSONic way of storing secrets in config file.

Frontend components

  • JSON editor jQuery plugin – component for you web apps/pages. (jQuery)
  • jqTree – Widget for displaying a tree structure in html. (jQuery)
  • jsTree – jquery plugin, that provides interactive trees. (jQuery)
  • Dynatable.js – A funner, semantic, HTML5+JSON, interactive table plugin. (jQuery)
  • JSON Formatter – Angular directive for collapsible JSON in HTML. (AngularJS)
  • react-jsonschema-form – A React component for building Web forms from JSON Schema. (React)

Libraries

C

  • Jansson – A C library for encoding, decoding and manipulating data.
  • jsmn – A minimalistic parser in C. It can be easily integrated into the resource-limited projects or embedded systems.
  • ojc – A fast JSON parser.

C++

  • ArduinoJson – An efficient library for embedded systems.
  • JSON++ – A self contained Flex/Bison parser for C++11.
  • json11 – A tiny library for C++11.
  • Nlohmann JSON – A C++11 header-only class.
  • RapidJSON – A fast JSON parser/generator for C++ with both SAX/DOM style API
  • simdjson – Parsing gigabytes of JSON per second.

Clojure

  • data.json – parser/generator to/from Clojure data structures.

Fortran

  • JSON-Fortran – A Fortran library for writing, reading, and manipulating JSON files and data structures.

Go

  • ojg – A collection of high performance JSON processing and generating tool.

Haskell

Java

  • JSON-java – A reference implementation.
  • Fast JSON Processor
  • Gson – A Java library to convert JSON to Java objects and vice-versa.
  • Jackson – A multi-purpose Java library for processing JSON data format.
  • moshi – A modern JSON library for Android and Java.
  • essential-json – A lightweight Java library for serialization, parsing and manipulation with a clean and precise API.
  • dsl-json – A very fast streaming JSON library. Operates on byte arrays.
  • mjson – Lean JSON Library for Java, with a compact, elegant API.

Javascript

  • JSON-js – JSON in JavaScript.
  • JSON 3 – A modern implementation.
  • oboe.js – A streaming approach, speeds up web applications by providing parsed objects before the response completes.

Objective-C

  • JSONKit – Objective-C library.
  • SBJson – Parse one or more chunks of data.

Perl

  • JSON::Tiny – Perl module for encoding and decoding JSON in a minimalistic way.

PL/SQL

  • PL/JSON – A generic JSON object written in PL/SQL.

PHP

  • Webmozart JSON – A robust decoder/encoder with support for schema validation.

Python

  • simplejson – A simple, fast, extensible encoder/decoder
  • jsonpickle – Library for serializing any arbitrary object graph.
  • metamagic.json – An ultra-fast Python 3 implementation of a JSON encoder.

Ruby

  • oj – A fast JSON parser and Object marshaller as a Ruby gem.
  • MultiJSON – A generic swappable back-end for JSON handling.

React

  • json2react – Use JSON to create React Stateless Components.

.NET

Scala

  • spray-json – A lightweight, clean and simple implementation in Scala.
  • circe – Yet another JSON library for Scala.
  • scala-jsonapi – Support library for integrating the JSON:API spec with Play, Spray and/or Circe backends.
  • jsoniter-scala – Scala macros for compile-time generation of ultra-fast JSON codecs.

Swift

  • SwiftyJSON – The better way to deal with data in Swift.

Linters

  • jsonlint – Parser and validator with a CLI. (Javascript)
  • JSON Lint – PHP linter. (PHP)

Online tools

Schema Specifications

  • JSON Schema – a JSON based format for defining the structure of JSON data.
  • Itemscript – Language for validating and specifying values.
  • Kwalify – A parser, schema validator, and data binding tool
  • Rx – Simple, Extensible Schemata.

Services

  • Exchange Rate API – A simple and free API for currency exchange rate data.
  • ipinfo.io – JSON IP and GeoIP REST API.
  • JSONProxy – Simple HTTP proxy that enables cross-domain requests to any JSON API.
  • Myjson – A simple store for your web or mobile app.
  • Telize – JSON IP and GeoIP REST API.
  • jsonpad – a simple JSON storage platform.
  • JSONP Proxy – A REST API allowing to get JSONP from any API.

Supersets

  • YAML – A human friendly data serialization standard for all programming languages.
  • HanSON – JSON for Humans – with unquoted identifiers, multi-line strings and comments.
  • μson (uson) – a shorthand for JSON.
  • HOCON – Human-Optimized Config Object Notation.
  • ASON – A semantically complete superset of JSON (draft).
  • TOML – A minimal configuration file format that’s easy to read due to obvious semantics.
  • HCL – A structured configuration language that is both human and machine friendly.

Tutorials

Related formats

  • AXON – A simple text based format for interchanging of objects, documents and data. It tries to combine the best of JSON, XML and YAML.
  • CSON – CoffeeScript-Object-Notation. JSON for CoffeeScript objects.
  • MSON – Markdown syntax compatible with describing JSON and JSON Schema.
  • ArchieML – Structured text format optimized for human writability.

Resources

  • Type-o-rama – JS type systems interportability, comparison of different JS type systems and conversion between them.
  • Awesome jq – A curated list of awesome jq tools and resources.

Templates

  • Jsonnet – A domain specific configuration language that helps you define JSON data.
  • rabl – General ruby templating with json, bson, xml, plist and msgpack support. (Ruby)
  • json2html – HTML templating library with wrappers for both jQuery and Node.js. (Javascript)

Testing

  • JSON Test – Testing platform for services utilizing JavaScript Object Notation (JSON).
  • JSONassert – Write JSON unit tests in less code. Great for testing REST interfaces. (Java)
  • JsonUnit – A library that simplifies JSON comparison in unit tests. It’s strongly inspired by XmlUnit.
  • JSON Parsing Test Suite – A very complete test suite and validation framework.

Text Editor Plugins

Emacs

Vim

  • vim-json – A better JSON for Vim: distinct highlighting of keywords vs values, JSON-specific (non-JS) warnings, quote concealing. Pathogen-friendly.

Transformations

  • json-sharp – Javascript tool to process operations on pure JSON objects. (Javascript)
  • json2json – Transform (reformat) structures from one to another. (Javascript)
  • trans – The ultimate object transformer. (Javascript)
  • osmtogeojson – Converts OSM data to GeoJSON. (Javascript)
  • fast-xml-parser – Fast XML to JSON and vice versa javascript/JSON conversion.
  • x2js – XML to JSON and vice versa javascript conversion functions. (Javascript)
  • JSONC – JSON compressor and decompressor. (Javascript)
  • JsonMapper – Map nested structures onto PHP classes (PHP)
  • SassyJSON – Sass-powered API. (Sass)
  • json.human.js – A small library to convert a JSON object into a human readable HTML representation that is easy to style for different purposes.
  • JSONtoFoundation – OS X utility that converts a JSON object to a Foundation object that can be used in Cocoa/Cocoa Touch development. (Swift)
  • fanci – Extract, rename and transform JSON based on a template. (node.js)
  • Pinch – String.replace for JavaScript objects. (Javascript)
  • deepjson – A better way to load big json config files. (node.js)
  • jsontl – allow transformation using a JSON-based transformation language. (node.js)
  • json-transforms – A recursive, pattern-matching, approach to transforming JSON structures.
  • normalizr – Normalizes nested JSON according to a schema. (Javascript)
  • JSON-populate – Tool for populating JSON data with infinitely recursive circular references. Sort of like Falcor, but for plain JSON.
  • CircularJSON – JSON does not handle circular references. Now it does.
  • Sawmill – JSON transformation library (Java)
  • nimnjs – JSON to nimn bidirectional converter.

Queries

  • dasel – Query and update data structures using selectors from the command line. Comparable to jq / yq but supports JSON, YAML, TOML and XML with zero runtime dependencies.
  • JMESPath – A query language for JSON.
  • JSON Mask – Tiny language and engine for selecting specific parts of a JS object, hiding the rest. (Javascript)
  • JSONiq – The JSON Query Language.
  • ObjectPath – The agile query language for semi-structured data. (Python)
  • DefiantJS – Lightning-fast searches using XPath expressions, and transform using XSL. (Javascript)
  • JSONSelect – CSS-like selectors. (Javascript)
  • JSONPath – XPath implementation. (Javascript/PHP)
  • searchjs – A library for filtering based on a json SQL-like language.
  • json-rel – Transparent references in JSON.
  • JSONata – Query and transformation language used in Node-RED, supports function expressions.

JSON Schema Frontend components

  • JSON Editor – JSON Schema Based Editor. (jQuery)
  • angular-schema-form – Generate forms. (AngularJS)
  • JSON Schema View – An AngularJS directive for rendering JSON Schema in HTML (AngularJS)
  • Angular JSON Schema Form – Angular directive for making forms out of JSON Schema. (AngularJS)
  • AlpacaJS – Generates JSON Schema driven forms on top of Bootstrap, jQuery Mobile, jQuery UI and HTML (jQuery)

JSON Schema Tools

  • prmd – Tools and doc generation for HTTP APIs.
  • generate-schema – Effortlessly convert your JSON Object to JSON Schema, Mongoose Schema, or a Generic template for quick documentation / upstart.
  • Docson – Documentation for your types.
  • Orderly JSON – A textual format for describing JSON compiled into JSONSchema.
  • jsonschema2pojo – Generates Java types and annotates those types for data-binding with Jackson 1.x or 2.x, Gson, etc.
  • Matic – Build tool for generating HTML documentation.
  • JSON Schema + Faker – Fake your schemas.
  • DLL.js – Gets you a JSON Schema from PostgreSQL or SQLite3.
  • JSONSchema.net – JSON Schema generator from JSON object.
  • js-schema – A new way of describing object schemas in JavaScript. It has a clean and simple syntax, and it is capable of serializing to/from the popular JSON Schema format.
  • aptos – A tool for validating data using JSON Schema and converting JSON Schema documents into different data-interchange formats.
  • JSON Schema $Ref Parser – Parse, resolve, and dereference JSON Schema $ref pointers

JSON Schema Resources

  • Understanding JSON Schema – A website aiming to provide more accessible documentation for JSON schema.
  • JSON Schema Store – A collection of popular schemas.
  • Using JSON Schema – a Book and GitHub project, showing how JSON Schema can be used for a variety of tasks and in different programming contexts.

JSON Schema Validators

Javascript and Node.js

  • json-schema-benchmark – Performance benchmark for Node.js validators.
  • is-my-json-valid – A validator that uses code generation to be extremely fast.
  • jsen – A validator built for speed.
  • themis – A blazing fast validator.
  • jsck – JSON Schema Compiled checK.
  • z-schema – validator written in JavaScript for NodeJS and Browsers.
  • jjv – Javascript Library for Schema Validation.
  • request-validator – Flexible request validator middleware for express and connect.
  • tv4 – Tiny Validator.
  • ajv – The fastest validator. Supports v5/6 proposals.

Java and Kotlin

  • Medeia Validator – Compliant (draft-04/06/07) and fast streaming validator written in Kotlin

PHP

Python

  • jsonschema – Python implementation of jsonschema.
  • JSON Schema Toolkit – Programmatic building of JSON schemas (recursive field mappings) with validation, a Django JSON Field, and native PostgreSQL JSON type constraints.

Ruby

Related Articles

Leave a Reply

Your email address will not be published. Required fields are marked *

Back to top button