JsonParser.hpp 645 B

1234567891011121314151617181920212223242526272829303132333435
  1. #pragma once
  2. #include "JsonNode.hpp"
  3. namespace ArduinoJson {
  4. class JsonBuffer;
  5. namespace Internals {
  6. class JsonNode;
  7. class JsonParser {
  8. public:
  9. JsonParser(JsonBuffer *buffer, char *json) : _buffer(buffer), _ptr(json) {}
  10. JsonNode *parseAnything();
  11. private:
  12. JsonBuffer *_buffer;
  13. char *_ptr;
  14. bool isEnd() { return *_ptr == 0; }
  15. bool skip(char charToSkip);
  16. void skipSpaces();
  17. inline JsonNode *parseArray();
  18. inline JsonNode *parseBoolean();
  19. inline JsonNode *parseNull();
  20. inline JsonNode *parseNumber();
  21. inline JsonNode *parseObject();
  22. inline JsonNode *parseObjectKeyValue();
  23. inline JsonNode *parseString();
  24. };
  25. }
  26. }