JsonParser.cpp 598 B

123456789101112131415161718192021222324252627282930
  1. /*
  2. * malloc-free JSON parser for Arduino
  3. * Benoit Blanchon 2014 - MIT License
  4. */
  5. #include "JsonParser.h"
  6. JsonParserBase::JsonParserBase(jsmntok_t* tokens, int maxTokenCount)
  7. {
  8. this->maxTokenCount = maxTokenCount;
  9. this->tokens = tokens;
  10. }
  11. jsmntok_t* JsonParserBase::parse(char* jsonString)
  12. {
  13. jsmn_parser parser;
  14. jsmn_init(&parser);
  15. if (JSMN_SUCCESS != jsmn_parse(&parser, jsonString, tokens, maxTokenCount))
  16. return 0;
  17. // Add null termination to each token
  18. for (int i = 1; i < parser.toknext; i++)
  19. {
  20. jsonString[tokens[i].end] = 0;
  21. }
  22. return tokens;
  23. }