A RetroSearch Logo

Home - News ( United States | United Kingdom | Italy | Germany ) - Football scores

Search Query:

Showing content from http://open-source-parsers.github.io/jsoncpp-docs/doxygen/index.html below:

Introduction

JSON (JavaScript Object Notation) is a lightweight data-interchange format.

Here is an example of JSON data:

{
    "encoding" : "UTF-8",
    "plug-ins" : [
        "python",
        "c++",
        "ruby"
        ],
    "indent" : { "length" : 3, "use_space": true }
}

JsonCpp supports comments as meta-data:

{

"encoding" : "UTF-8",

"plug-ins" : [

"python",

"c++",

"ruby"

],

"indent" : { "length" : 3, "use_space": true }

}

Features

Notes: Comments used to be supported in JSON but were 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

std::cin >> root;

std::cin >> root["subtree"];

std::string encoding = root.

get

(

"encoding"

,

"UTF-8"

).

asString

();

for

(

int

index = 0; index < plugins.

size

(); ++index )

loadPlugIn( plugins[index].asString() );

foo::setIndentLength( root["indent"].get("length", 3).asInt() );

foo::setIndentUseSpace( root["indent"].get("use_space", true).asBool() );

root["encoding"] = foo::getCurrentEncoding();

root["indent"]["length"] = foo::getCurrentIndentLength();

root["indent"]["use_space"] = foo::getCurrentIndentUseSpace();

std::cout << root;

std::cout << std::endl;

Represents a JSON value.

Definition: value.h:193

Value get(ArrayIndex index, const Value &defaultValue) const

If the array contains at least index+1 elements, returns the element value, otherwise returns default...

Definition: json_value.cpp:1074

ArrayIndex size() const

Number of values in array or object.

Definition: json_value.cpp:859

String asString() const

Embedded zeroes are possible.

Definition: json_value.cpp:628

Advanced usage

Configure builders to create readers and writers. For configuration, we use our own Json::Value (rather than standard setters/getters) so that we can add features without losing binary-compatibility.

wbuilder["indentation"] = "\t";

rbuilder["collectComments"] = false;

std::string errs;

Build a CharReader implementation.

Definition: reader.h:289

Build a StreamWriter implementation.

Definition: writer.h:89

String writeString(StreamWriter::Factory const &factory, Value const &root)

Write into stringstream, then return string, for convenience.

Definition: json_writer.cpp:1246

bool parseFromStream(CharReader::Factory const &, IStream &, Value *root, String *errs)

Consume entire stream and use its begin/end.

Definition: json_reader.cpp:1971

Yes, compile-time configuration-checking would be helpful, but Json::Value lets you write and read the builder configuration, which is better! In other words, you can configure your JSON parser using JSON.

CharReaders and StreamWriters are not thread-safe, but they are re-usable.

std::unique_ptr<Json::CharReader>

const

reader(rbuilder.

newCharReader

());

reader->parse(start, stop, &value1, &errs);

reader->parse(start, stop, &value2, &errs);

CharReader * newCharReader() const override

Allocate a CharReader via operator new().

Definition: json_reader.cpp:1883

Json::Value settings_

Configuration of this builder.

Definition: reader.h:332

Build instructions

The build instructions are located in the file README.md in the top-directory of the project.

The latest version of the source is available in the project's GitHub repository: jsoncpp

What's New?

The description of latest changes can be found in the NEWS wiki .

Related links Old project links License

See file LICENSE in the top-directory of the project.

Basically JsonCpp is licensed under MIT license, or public domain if desired and recognized in your jurisdiction.

Author
Baptiste Lepilleur blep@.nosp@m.user.nosp@m.s.sou.nosp@m.rcef.nosp@m.orge..nosp@m.net (originator)
Christopher Dunn cdunn.nosp@m.2001.nosp@m.@gmai.nosp@m.l.co.nosp@m.m (primary maintainer)
Version
We make strong guarantees about binary-compatibility, consistent with the Apache versioning scheme.
See also
version.h

RetroSearch is an open source project built by @garambo | Open a GitHub Issue

Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo

HTML: 3.2 | Encoding: UTF-8 | Version: 0.7.4