All Projects → libstud → libstud-json

libstud / libstud-json

Licence: MIT license
JSON pull-parser/push-serializer library for C++

Programming Languages

C++
36643 projects - #6 most used programming language
ruby
36898 projects - #4 most used programming language

Projects that are alternatives of or similar to libstud-json

Spotify Json
Fast and nice to use C++ JSON library.
Stars: ✭ 145 (+625%)
Mutual labels:  json-serialization, json-parser
representable
Maps representation documents from and to Ruby objects. Includes JSON, XML and YAML support, plain properties and compositions.
Stars: ✭ 689 (+3345%)
Mutual labels:  json-serialization, json-parser
Python Rapidjson
Python wrapper around rapidjson
Stars: ✭ 417 (+1985%)
Mutual labels:  json-serialization, json-parser
Bfj
MOVED TO GITLAB
Stars: ✭ 164 (+720%)
Mutual labels:  json-serialization, json-parser
Thorsserializer
C++ Serialization library for JSON
Stars: ✭ 241 (+1105%)
Mutual labels:  json-serialization, json-parser
Easyjson
Fast JSON serializer for golang.
Stars: ✭ 3,512 (+17460%)
Mutual labels:  json-serialization, json-parser
Json
JSON for Modern C++
Stars: ✭ 27,824 (+139020%)
Mutual labels:  json-serialization, json-parser
Fastjson
A fast JSON parser/generator for Java.
Stars: ✭ 23,997 (+119885%)
Mutual labels:  json-serialization, json-parser
Mir Ion
WIP, use libmir/asdf package for now
Stars: ✭ 78 (+290%)
Mutual labels:  json-serialization, json-parser
Jsondoc
JSON object for Delphi based on IUnknown and Variant
Stars: ✭ 20 (+0%)
Mutual labels:  json-serialization, json-parser
domino-jackson
Jackson with Annotation processing
Stars: ✭ 46 (+130%)
Mutual labels:  json-serialization, json-parser
Json Dry
🌞 JSON-dry allows you to serialize & revive objects containing circular references, dates, regexes, class instances,...
Stars: ✭ 214 (+970%)
Mutual labels:  json-serialization, json-parser
kson
A Java serialization/deserialization library to convert Java Objects into json and back, faster and powerful then Gson.
Stars: ✭ 25 (+25%)
Mutual labels:  json-serialization, json-parser
Jsoncons
A C++, header-only library for constructing JSON and JSON-like data formats, with JSON Pointer, JSON Patch, JSON Schema, JSONPath, JMESPath, CSV, MessagePack, CBOR, BSON, UBJSON
Stars: ✭ 400 (+1900%)
Mutual labels:  json-serialization, json-parser
JsonFormatter
Easy, Fast and Lightweight Json Formatter. (Serializer and Deserializer)
Stars: ✭ 26 (+30%)
Mutual labels:  json-serialization, json-parser
Spray Json
A lightweight, clean and simple JSON implementation in Scala
Stars: ✭ 917 (+4485%)
Mutual labels:  json-serialization, json-parser
Waargonaut
JSON decoding/encoding/manipulation library.
Stars: ✭ 82 (+310%)
Mutual labels:  json-serialization, json-parser
jackson-js
JavaScript object serialization and deserialization library using decorators. It supports also advanced Object concepts such as polymorphism, Object identity and cyclic objects.
Stars: ✭ 86 (+330%)
Mutual labels:  json-serialization, json-parser
Zson
专为测试人员打造的JSON解析器
Stars: ✭ 181 (+805%)
Mutual labels:  json-serialization
jisoni
A native JSON parser written in pure @vlang/v
Stars: ✭ 13 (-35%)
Mutual labels:  json-parser

libstud-json - JSON parser/serializer library for C++

A portable, dependency-free, MIT-licensed JSON pull-parser/push-serializer library for C++.

The goal of this library is to provide a pull-style parser (instead of push/SAX or DOM) and push-style serializer with clean, modern interfaces and conforming, well-tested (and well-fuzzed, including the serializer) implementations. In particular, pull-style parsers are not very common, and we couldn't find any C++ implementations that also satisfy the above requirements.

Typical parser usage:

#include <iostream>

#include <libstud/json/parser.hxx>

int main ()
{
  using namespace stud::json;

  parser p (std::cin, "<stdin>");

  for (event e: p)
  {
    switch (e)
    {
    case event::begin_object:
      // ...
    case event::end_object:
      // ...
    case event::name:
      {
        const std::string& n (p.name ());
        // ...
      }
    case event::number:
      {
        int n (p.value<int> ());
        // ...
      }
    }
  }
}

See the libstud/json/parser.hxx header for the parser interface details and the libstud/json/event.hxx header for the complete list of events.

Typical serializer usage:

#include <iostream>

#include <libstud/json/serializer.hxx>

int main ()
{
  using namespace stud::json;

  stream_serializer s (std::cout);

  s.begin_object ();
  s.member ("string", "abc");
  s.member_name ("array");
  s.begin_array ();
  s.value (123);
  s.value (true);
  s.end_array ();
  s.end_object ();
}

See the libstud/json/serializer.hxx header for the serializer interface details.

See the NEWS file for changes and the cppget.org/libstud-json package page for build status.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].