Skip to content

coredumped/jsonxx

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Introduction

JSON++ is a light-weight JSON parser written in C++.

Contributors

http://github.com/hjiang
http://github.com/elanthis

Why another JSON parser?

Perhaps because web service clients are usually written in dynamic
languages these days, none of the existing C++ JSON parsers suite my
needs very well, so I wrote one to used in another project. My goals
for JSON++ were:

  • Efficient in both memory and speed.
  • No third party dependencies. JSON++ only depends on the standard C++ library.
  • Cross platform.
  • Robust.
  • Small and convenient API. Most of the time, you only need to call one function and two function templates.
  • Easy to integrate. JSON++ only has one source file and one header file. Just compile the source file and link with your program.

Usage

The following snippet is from one of the unit tests. It’s quite self-descriptive.


string teststr(
        "{"
        "  \"foo\" : 1,"
        "  \"bar\" : false,"
        "  \"person\" : {\"name\" : \"GWB\", \"age\" : 60},"
        "  \"data\": [\"abcd\", 42]"
        "}"
               );
istringstream input(teststr);
Object o;
assert(o.parse(input));
assert(1 == o.get<jsonxx::number>("foo"));
assert(o.has<bool>("bar"));
assert(o.has<Object>("person"));
assert(o.get<Object>("person").has<jsonxx::number>("age"));
assert(o.has<Array>("data"));
assert(o.get<Array>("data").get<jsonxx::number>(1) == 42);
assert(o.get<Array>("data").get<string>(0) == "abcd");
assert(!o.has<jsonxx::number>("data"));

About

A JSON parser in C++

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 100.0%