JSonValue class nearly complete. Should be fully capable of
programatically creating JSon Objects/Arrays with ease.
Ummm... still no reading of JSon from files or strings yet.

Example of use:
// Creates a JSonObject and stores it as a JSonValue.
JSonValue jv(*(new JSonObject()));
jv["regions:US:people"] = *(new JSonArray());
// NOTE: "regions" is created as a JSonObject and "US" is created as a
// JSonObject within the "regions" JSonObject. "People" is created
// within the "US" JSonObject but it's being set as a JSonArray.
jv["regions:US:people:+"] = "Bob";
// Since "regions:US:people" is an array, the "+" segment is identified
// as a shorthand for the JSonArray::push_back() method, creating a
// new JSonValue in the next array slot. We then set that new JSonValue
// to a string.
jv["regions:US:people:+"] = "Mary";
jv["regions:US:people:+"] = "Mark";
// Just adding two more elements to the "regions:US:people" array.
jv["regions:US:population"] = 300; // million, actually.

std::cout << jv.serialize() << std::endl;
/* Resulting printout:
{regions:{US:{people:["Bob","Mary","Mark"],population:300}}}
*/