]> git.proxmox.com Git - ceph.git/blob - ceph/src/rapidjson/example/simplereader/simplereader.cpp
update sources to v12.1.0
[ceph.git] / ceph / src / rapidjson / example / simplereader / simplereader.cpp
1 #include "rapidjson/reader.h"
2 #include <iostream>
3
4 using namespace rapidjson;
5 using namespace std;
6
7 struct MyHandler {
8 bool Null() { cout << "Null()" << endl; return true; }
9 bool Bool(bool b) { cout << "Bool(" << boolalpha << b << ")" << endl; return true; }
10 bool Int(int i) { cout << "Int(" << i << ")" << endl; return true; }
11 bool Uint(unsigned u) { cout << "Uint(" << u << ")" << endl; return true; }
12 bool Int64(int64_t i) { cout << "Int64(" << i << ")" << endl; return true; }
13 bool Uint64(uint64_t u) { cout << "Uint64(" << u << ")" << endl; return true; }
14 bool Double(double d) { cout << "Double(" << d << ")" << endl; return true; }
15 bool RawNumber(const char* str, SizeType length, bool copy) {
16 cout << "Number(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
17 return true;
18 }
19 bool String(const char* str, SizeType length, bool copy) {
20 cout << "String(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
21 return true;
22 }
23 bool StartObject() { cout << "StartObject()" << endl; return true; }
24 bool Key(const char* str, SizeType length, bool copy) {
25 cout << "Key(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
26 return true;
27 }
28 bool EndObject(SizeType memberCount) { cout << "EndObject(" << memberCount << ")" << endl; return true; }
29 bool StartArray() { cout << "StartArray()" << endl; return true; }
30 bool EndArray(SizeType elementCount) { cout << "EndArray(" << elementCount << ")" << endl; return true; }
31 };
32
33 int main() {
34 const char json[] = " { \"hello\" : \"world\", \"t\" : true , \"f\" : false, \"n\": null, \"i\":123, \"pi\": 3.1416, \"a\":[1, 2, 3, 4] } ";
35
36 MyHandler handler;
37 Reader reader;
38 StringStream ss(json);
39 reader.Parse(ss, handler);
40
41 return 0;
42 }