rapidjson - Serbipunk/notes GitHub Wiki
https://medium.com/codeflu/understanding-rapidjson-e7fbf62492ba
template <typename Document>
void changeDom(Document& d);
int main() {
StringBuffer s;
Document d;
PrettyWriter<StringBuffer> writer(s);
display(writer);
cout << “Before Manupulation\n” << s.GetString() << endl ;
d.Parse(s.GetString());
changeDom(d);
s.Clear(); // clear the buffer to prepare for a new json document
writer.Reset(s); // resetting writer for a fresh json doc
d.Accept(writer); // writing parsed document to buffer
cout << “After Manupulation\n” << s.GetString() << endl;
}
template <typename Document>
void changeDom(Document& d){
Value& node = d[“hello”];
node.SetString(“c++”);
d["f"] = true;
d["t"].SetBool(false);
}
template <typename Writer>
void display(Writer& writer){
writer.StartObject();
writer.String(“hello”);
writer.String(“world”);
writer.String(“t”);
writer.Bool(true);
writer.String(“f”);
writer.Bool(false);
writer.String(“n”);
writer.Null();
writer.String(“i”);
writer.Uint(123);
writer.String(“pi”);
writer.Double(3.1416);
writer.String(“a”);
writer.StartArray();
for (unsigned i = 0; i < 4; i++)
writer.Uint(i);
writer.EndArray();
writer.EndObject();
}