Introduction
JSON (JavaScript Object Notation) is a lightweight data-interchange format. It can represent integer, real number, string, an ordered sequence of value, and a collection of name/value pairs.
Here is an example of JSON data:
// Configuration options
{
// Default encoding for text
"encoding" : "UTF-8",
// Plug-ins loaded at start-up
"plug-ins" : [
"python",
"c++",
"ruby"
],
// Tab indent size
"indent" : { "length" : 3, "use_space" = true }
}
Features
- read and write JSON document
- attach C and C++ style comments to element during parsing
- rewrite JSON document preserving original comments
Notes: Comments used to be supported in JSON but where removed for portability (C like comments are not supported in Python). Since comments are useful in configuration/input file, this feature was preserved.
Code example
bool parsingSuccessful = reader.
parse( config_doc, root );
if ( !parsingSuccessful )
{
std::cout << "Failed to parse configuration\n"
return;
}
std::string encoding = root.
get(
"encoding",
"UTF-8" ).
asString();
for (
int index = 0; index < plugins.
size(); ++index )
loadPlugIn( plugins[index].asString() );
setIndentLength( root["indent"].get("length", 3).asInt() );
setIndentUseSpace( root["indent"].get("use_space", true).asBool() );
root["encoding"] = getCurrentEncoding();
root["indent"]["length"] = getCurrentIndentLength();
root["indent"]["use_space"] = getCurrentIndentUseSpace();
std::string outputConfig = writer.
write( root );
std::cin >> root["subtree"];
std::cout << root;
Unserialize a JSON document into a Value.
std::string getFormatedErrorMessages() const
Returns a user friendly string that list errors in the parsed document.
bool parse(const std::string &document, Value &root, bool collectComments=true)
Read a Value from a JSON document.
Writes a Value in JSON format in a human friendly way.
virtual std::string write(const Value &root)
Serialize a Value in JSON format.
Value get(UInt index, const Value &defaultValue) const
If the array contains at least index+1 elements, returns the element value, otherwise returns default...
UInt size() const
Number of values in array or object.
std::string asString() const
Build instructions
The build instructions are located in the file README.txt in the top-directory of the project.
Permanent link to the latest revision of the file in subversion: latest README.txt
Download
The sources can be downloaded from SourceForge download page.
The latest version of the source is available in the project's subversion repository: http://jsoncpp.svn.sourceforge.net/svnroot/jsoncpp/trunk/
To checkout the source, see the following instructions.
Build instructions
Related links
License
The json-cpp library and this documentation are in Public Domain.
- Author
- Baptiste Lepilleur blep@.nosp@m.user.nosp@m.s.sou.nosp@m.rcef.nosp@m.orge..nosp@m.net