Skip to content

ShadauxCat/LightningJSON

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

LightningJSON

LightningJSON is a C++ JSON parser written with the goal of maximizing performance of both parsing and lookups. It has one of the fastest JSON parsers available (especially when parsing with strict mode disabled) and its runtime data structures are built on fast algorithms such as SkipProbe and a thread-local pool allocator to achieve fast allocations of dynamic memory, which is used as little as possible.

To ensure parsing is as quick as possible, LightningJSON parses the JSON string in-place and will hold references to the string for as long as the LightningJSON object exists. Type conversions are processed lazily, meaning the string is not converted into an integer, boolean, float, or double until accessed that way. Likewise, strings aren't unescaped until requested. LightningJSON only spends its time doing what you actually need it to do - the only thing it does in the initial parse is parse the overall structure (objects and arrays) and collect type metadata.

Proper documentation and benchmarks will come soon.

Basic usage:

LightningJSON::JSONObject foo = LightningJSON::JSONObject::FromString(std::string_view(jsonString.c_str(), jsonString.length());
double d = foo["bar"]["baz"][3].AsDouble();
foo["bar"]["baz"][3] = 1.5;
std::string output = foo.ToJSONString(true);

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages