2014-01-11 15:05:35 +01:00
|
|
|
/*
|
|
|
|
* malloc-free JSON parser for Arduino
|
|
|
|
* Benoit Blanchon 2014
|
|
|
|
* MIT License
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __JSONOBJECTBASE_H
|
|
|
|
#define __JSONOBJECTBASE_H
|
|
|
|
|
|
|
|
#include "utility/jsmn.h"
|
|
|
|
|
|
|
|
class JsonObjectBase
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
|
|
|
JsonObjectBase()
|
|
|
|
{
|
2014-01-11 16:41:18 +01:00
|
|
|
makeInvalid();
|
2014-01-11 15:05:35 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
bool success()
|
|
|
|
{
|
|
|
|
return json != 0 && tokens != 0;
|
|
|
|
}
|
|
|
|
|
|
|
|
protected:
|
|
|
|
|
|
|
|
JsonObjectBase(char* json, jsmntok_t* tokens)
|
|
|
|
{
|
|
|
|
this->json = json;
|
|
|
|
this->tokens = tokens;
|
|
|
|
}
|
|
|
|
|
2014-01-11 16:41:18 +01:00
|
|
|
void makeInvalid()
|
|
|
|
{
|
|
|
|
json = 0;
|
|
|
|
tokens = 0;
|
|
|
|
}
|
2014-01-11 16:53:20 +01:00
|
|
|
|
|
|
|
static int getNestedTokenCount(jsmntok_t* token);
|
2014-01-12 17:08:22 +01:00
|
|
|
|
|
|
|
double getDoubleFromToken(jsmntok_t* token);
|
2014-01-12 12:57:44 +01:00
|
|
|
long getLongFromToken(jsmntok_t* token);
|
2014-01-12 17:08:22 +01:00
|
|
|
char* getStringFromToken(jsmntok_t* token);
|
2014-01-11 15:05:35 +01:00
|
|
|
|
|
|
|
char* json;
|
|
|
|
jsmntok_t* tokens;
|
|
|
|
};
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|