HepuHBRe.h 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
  1. #pragma once
  2. #include <iostream>
  3. #include <rapidjson/document.h>
  4. #include <rapidjson/rapidjson.h>
  5. #include <rapidjson/stringbuffer.h>
  6. #include <rapidjson/writer.h>
  7. using namespace std;
  8. class HepuHBRe
  9. {
  10. private:
  11. public:
  12. const string cmd = "userOnlineHeart";
  13. int ackvalue ;
  14. HepuHBRe(){};
  15. ~HepuHBRe(){};
  16. bool jsonToObject(string& json){
  17. rapidjson::Document doc;
  18. doc.Parse(json.c_str());
  19. if(!doc.IsObject()){
  20. return false;
  21. }
  22. const auto end = doc.MemberEnd();
  23. if(end == doc.FindMember("cmd") || !doc["cmd"].IsString()){
  24. return false;
  25. }else{
  26. if(cmd != doc["cmd"].GetString())
  27. return false;
  28. }
  29. if(end == doc.FindMember("param") || !doc["param"].IsObject()) {
  30. return false;
  31. }else{
  32. const rapidjson::Value& object = doc["param"];
  33. if(end == object.FindMember("ackvalue") || !object["ackvalue"].IsInt()) {
  34. return false;
  35. }else{
  36. ackvalue = object["ackvalue"].GetInt();
  37. }
  38. }
  39. return true;
  40. }
  41. };