simplereader.cpp 1.4 KB

12345678910111213141516171819202122232425262728293031323334
  1. #include "rapidjson/reader.h"
  2. #include <iostream>
  3. using namespace rapidjson;
  4. using namespace std;
  5. struct MyHandler {
  6. bool Null() { cout << "Null()" << endl; return true; }
  7. bool Bool(bool b) { cout << "Bool(" << boolalpha << b << ")" << endl; return true; }
  8. bool Int(int i) { cout << "Int(" << i << ")" << endl; return true; }
  9. bool Uint(unsigned u) { cout << "Uint(" << u << ")" << endl; return true; }
  10. bool Int64(int64_t i) { cout << "Int64(" << i << ")" << endl; return true; }
  11. bool Uint64(uint64_t u) { cout << "Uint64(" << u << ")" << endl; return true; }
  12. bool Double(double d) { cout << "Double(" << d << ")" << endl; return true; }
  13. bool String(const char* str, SizeType length, bool copy) {
  14. cout << "String(" << str << ", " << length << ", " << boolalpha << copy << ")" << endl;
  15. return true;
  16. }
  17. bool StartObject() { cout << "StartObject()" << endl; return true; }
  18. bool EndObject(SizeType memberCount) { cout << "EndObject(" << memberCount << ")" << endl; return true; }
  19. bool StartArray() { cout << "StartArray()" << endl; return true; }
  20. bool EndArray(SizeType elementCount) { cout << "EndArray(" << elementCount << ")" << endl; return true; }
  21. };
  22. int main() {
  23. const char json[] = " { \"hello\" : \"world\", \"t\" : true , \"f\" : false, \"n\": null, \"i\":123, \"pi\": 3.1416, \"a\":[1, 2, 3, 4] } ";
  24. MyHandler handler;
  25. Reader reader;
  26. StringStream ss(json);
  27. reader.Parse(ss, handler);
  28. return 0;
  29. }