JsonParser.hpp 1.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. #pragma once
  2. #include "JsonNode.hpp"
  3. namespace ArduinoJson
  4. {
  5. class JsonBuffer;
  6. namespace Internals
  7. {
  8. class JsonNode;
  9. class JsonParser
  10. {
  11. public:
  12. JsonParser(JsonBuffer* buffer, char* json)
  13. : _buffer(buffer), _ptr(json)
  14. {
  15. }
  16. JsonNode* parseAnything();
  17. private:
  18. JsonBuffer* _buffer;
  19. char* _ptr;
  20. inline bool isArrayStart();
  21. inline bool isArrayStop();
  22. inline bool isBoolean();
  23. inline bool isComma();
  24. inline bool isColon();
  25. inline bool isDouble();
  26. inline bool isEnd();
  27. inline bool isLong();
  28. inline bool isNull();
  29. inline bool isObjectStop();
  30. inline bool isObjectStart();
  31. inline bool isSpace();
  32. inline void skipOneChar();
  33. inline void skipSpaces();
  34. inline JsonNode* parseArray();
  35. inline JsonNode* parseBoolean();
  36. inline JsonNode *parseDouble();
  37. inline JsonNode* parseObjectKeyValue();
  38. inline JsonNode* parseLong();
  39. inline JsonNode* parseNull();
  40. inline JsonNode* parseObject();
  41. inline JsonNode* parseString();
  42. };
  43. }
  44. }