| #include "rapidjson/reader.h" |
| #include <iostream> |
| |
| using namespace rapidjson; |
| using namespace std; |
| |
| struct MyHandler { |
| bool Null() { cout << "Null()" << endl; return true; } |
| bool Bool(bool b) { cout << "Bool(" << boolalpha << b << ")" << endl; return true; } |
| bool Int(int i) { cout << "Int(" << i << ")" << endl; return true; } |
| bool Uint(unsigned u) { cout << "Uint(" << u << ")" << endl; return true; } |
| bool Int64(int64_t i) { cout << "Int64(" << i << ")" << endl; return true; } |
| bool Uint64(uint64_t u) { cout << "Uint64(" << u << ")" << endl; return true; } |
| bool Double(double d) { cout << "Double(" << d << ")" << endl; return true; } |
| bool RawNumber(const char* str, SizeType length, bool copy) { |
| cout << "Number(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl; |
| return true; |
| } |
| bool String(const char* str, SizeType length, bool copy) { |
| cout << "String(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl; |
| return true; |
| } |
| bool StartObject() { cout << "StartObject()" << endl; return true; } |
| bool Key(const char* str, SizeType length, bool copy) { |
| cout << "Key(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl; |
| return true; |
| } |
| bool EndObject(SizeType memberCount) { cout << "EndObject(" << memberCount << ")" << endl; return true; } |
| bool StartArray() { cout << "StartArray()" << endl; return true; } |
| bool EndArray(SizeType elementCount) { cout << "EndArray(" << elementCount << ")" << endl; return true; } |
| }; |
| |
| int main() { |
| const char json[] = " { \"hello\" : \"world\", \"t\" : true , \"f\" : false, \"n\": null, \"i\":123, \"pi\": 3.1416, \"a\":[1, 2, 3, 4] } "; |
| |
| MyHandler handler; |
| Reader reader; |
| StringStream ss(json); |
| reader.Parse(ss, handler); |
| |
| return 0; |
| } |