HepuLoginRe.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  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 HepuLoginRe
  9. {
  10. private:
  11. public:
  12. const string cmd = "userLogin";
  13. int ackvalue;
  14. string token;
  15. HepuLoginRe(){};
  16. ~HepuLoginRe(){};
  17. bool jsonToObject(string& json){
  18. rapidjson::Document doc;
  19. doc.Parse(json.c_str());
  20. if(!doc.IsObject()){
  21. return false;
  22. }
  23. const auto end = doc.MemberEnd();
  24. if(end == doc.FindMember("cmd") || !doc["cmd"].IsString()){
  25. return false;
  26. }else{
  27. if(cmd != doc["cmd"].GetString())
  28. return false;
  29. }
  30. if(end == doc.FindMember("param") || !doc["param"].IsObject()) {
  31. return false;
  32. }else{
  33. if(end == doc.FindMember("ackvalue") || !doc["ackvalue"].IsInt()) {
  34. return false;
  35. }else{
  36. ackvalue = doc["token"].GetInt();
  37. }
  38. if(end == doc.FindMember("token") || !doc["token"].IsString()) {
  39. return false;
  40. }else{
  41. token = doc["token"].GetString();
  42. }
  43. }
  44. return true;
  45. }
  46. };