Noggit - JSON streaming parser

  •        88

Noggit is the world's fastest streaming JSON parser for Java. It is used in Apache Solr.
Its features include:

  • Fast! Measured as the fastest JSON parser on char[], String input.
  • Streaming API (StAX/pull-parser like) for both easy and efficient parsing.
  • Conforms to JSON standard: http://www.ietf.org/rfc/rfc4627.txt
  • Conforms to JSON standard: http://rfc7159.net/rfc7159
  • Memory efficiency:
    • Incremental parsing (Reader-based) in order to handle huge messages.
    • A single byte of state needed per nested object or array.
    • Doesn't read large objects (including primitives) into memory unless asked.
    • Can eliminate most copying, allowing user to provide value output buffers.
  • Can handle primitives of any size (does not attempt to parse numerics into a certain language primitive unless asked).
  • Simple serialization of objects (List, Map, etc).
  • Optional creation of objects (List, Map, etc) when parsing.

https://github.com/yonik/noggit

Tags
Implementation
License
Platform

   




Related Projects

Jackson JSON - JSON Parser in Java


Jackson is a multi-purpose Java library for processing JSON data format. This project contains core low-level incremental ("streaming") parser and generator abstractions used by Jackson Data Processor. It also includes the default implementation of handler types (parser, generator) that handle JSON format.

JsonFx.NET - JSON serialization framework for .NET


JsonFx v2.0 - JSON serialization framework for .NET. It has unified interface for reading / writing JSON, BSON, XML, JsonML. It implements LINQ-to-JSON, Supports reading/writing using DataContract, XmlSerialization, JsonName, attributes and lot more.

fastjson - Fast JSON Processor


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 string to an equivalent Java object. Fastjson can work with arbitrary Java objects including pre-existing objects that you do not have source-code of.

JSON-java - A reference implementation of a JSON package in Java


A reference implementation of a JSON package in Java. The files in this package implement JSON encoders/decoders in Java. It also includes the capability to convert between JSON and XML, HTTP headers, Cookies, and CDL.


json - JSON for Modern C++


Intuitive syntax. In languages such as Python, JSON feels like a first class data type. We used all the operator magic of modern C++ to achieve the same feeling in your code. Check out the examples below and you'll know what I mean.Trivial integration. Our whole code consists of a single header file json.hpp. That's it. No library, no subproject, no dependencies, no complex build system. The class is written in vanilla C++11. All in all, everything should require no adjustment of your compiler flags or project settings.

jackson - Main Portal page for the Jackson project


This is the home page of the Jackson Project, formerly known as the standard JSON library for Java (or JVM platform in general), or, as the "best JSON parser for Java." Or simply as "JSON for Java." More than that, Jackson is a suite of data-processing tools for Java (and the JVM platform), including the flagship streaming JSON parser / generator library, matching data-binding library (POJOs to and from JSON) and additional data format modules to process data encoded in Avro, BSON, CBOR, CSV, Smile, (Java) Properties, Protobuf, XML or YAML; and even the large set of data format modules to support data types of widely used data types such as Guava, Joda, PCollections and many, many more (see below). While the actual core components live under their own projects -- including the three core packages (streaming, databind, annotations); data format libraries; data type libraries; JAX-RS provider; and a miscellaneous set of other extension modules -- this project act as the central hub for linking all the pieces together.

spray-json - A lightweight, clean and simple JSON implementation in Scala


spray-json is a lightweight, clean and efficient JSON implementation in Scala. spray-json is available from maven central.

HandyJSON - A handy swift json-object serialization/deserialization library


HandyJSON is a framework written in Swift which to make converting model objects( pure classes/structs ) to and from JSON easy on iOS.Compared with others, the most significant feature of HandyJSON is that it does not require the objects inherit from NSObject(not using KVC but reflection), neither implements a 'mapping' function(writing value to memory directly to achieve property assignment).

ServiceStack text - NET's fastest JSON, JSV and CSV Text Serializers


ServiceStack.Text is an independent, dependency-free serialization library that contains ServiceStack's text processing functionality, including: JsonSerializer, TypeSerializer (JSV-Format), CsvSerializer, T.Dump extension method, StringExtensions - Xml/Json/Csv/Url encoding, BaseConvert, Rot13, Hex escape, etc., Stream, Reflection, List, DateTime, etc extensions and utils.

csv-parser - Streaming csv parser inspired by binary-csv that aims to be faster than everyone else


csv-parser can convert CSV into JSON at at rate of around 90,000 rows per second (perf varies with data, try bench.js with your data).The data emitted is a normalized JSON object. Each header is used as the property name of the object.

djson - Fast Go decoder for dynamic JSON


DJSON is a JSON decoder for Go that is 2~ to 3~ times faster than the standard encoding/json and the existing solutions, when dealing with arbitrary JSON payload. See benchmarks below. It is a good approach for people who are using json.Unmarshal together with interface{}, don't know what the schema is, and still want good performance with minimal changes.While searching for a JSON parser solution for my projects, that is faster than the standard library, with zero reflection tests, allocates less memory and is still safe(I didn't want the "unsafe" package in my production code, in order to reduce memory consumption). I found that almost all implemtations are just wrappers around the standard library and aren't fast enough for my needs. I encountered two projects: ujson that is the UltraJSON implementation and jsonparser, that is a pretty awesome project. ujson seems to be faster than encoding/json but still doesn't meet my requirements. jsonparser seems to be really fast, and I even use it for some of my new projects. However, its API is different, and I would need to change too much of my code in order to work with it. Also, for my processing work that involves ETL, changing and setting new fields on the JSON object, I need to transform the jsonparser result to map[string]interface{} and it seems that it loses its power.

JSONCPP - A C++ library for interacting with JSON


JsonCpp is a C++ library that allows manipulating JSON values, including serialization and deserialization to and from strings. It can also preserve existing comment in unserialization/serialization steps, making it a convenient format to store user input files.

jsonparser - Alternative JSON parser for Go that does not require schema (so far fastest)


It does not require you to know the structure of the payload (eg. create structs), and allows accessing fields by providing the path to them. It is up to 10 times faster than standard encoding/json package (depending on payload size and usage), allocates no memory. See benchmarks below.Originally I made this for a project that relies on a lot of 3rd party APIs that can be unpredictable and complex. I love simplicity and prefer to avoid external dependecies. encoding/json requires you to know exactly your data structures, or if you prefer to use map[string]interface{} instead, it will be very slow and hard to manage. I investigated what's on the market and found that most libraries are just wrappers around encoding/json, there is few options with own parsers (ffjson, easyjson), but they still requires you to create data structures.

JSON.NET - JSON framework for .NET


Json.NET is a popular high-performance JSON framework for .NET. It is serializes .NET objects to JSON. It converts JSON to LINQ, XML and lot more. It performs faster than .NET buit in serializers.

Convert between PowerShell and JSON


ConvertTo-JSON and ConvertFrom-JSON. Take a JSON string and crank out PowerShell Objects. Got PowerShell Objects, generate JSON strings form them.

yajl - Yet Another JSON Library - A Portable JSON parsing and serialization library in ANSI C


Yet Another JSON Library - A Portable JSON parsing and serialization library in ANSI C

jsmn - Jsmn is a world fastest JSON parser/tokenizer


jsmn (pronounced like 'jasmine') is a minimalistic JSON parser in C. It can be easily integrated into resource-limited or embedded projects. Most JSON parsers offer you a bunch of functions to load JSON data, parse it and extract any value by its name. jsmn proves that checking the correctness of every JSON packet or allocating temporary objects to store parsed JSON fields often is an overkill.