Added JsonArray::getBool() and JsonHashTable::getBool()

This commit is contained in:
Benoit Blanchon
2014-01-12 20:30:24 +01:00
parent 9e91fb3f46
commit 9c7ff38bbf
6 changed files with 30 additions and 0 deletions

View File

@ -41,6 +41,11 @@ JsonArray JsonArray::getArray(int index)
return JsonArray(json, getToken(index)); return JsonArray(json, getToken(index));
} }
bool JsonArray::getBool(int index)
{
return getBoolFromToken(getToken(index));
}
double JsonArray::getDouble(int index) double JsonArray::getDouble(int index)
{ {
return getDoubleFromToken(getToken(index)); return getDoubleFromToken(getToken(index));

View File

@ -27,6 +27,7 @@ public:
} }
JsonArray getArray(int index); JsonArray getArray(int index);
bool getBool(int index);
double getDouble(int index); double getDouble(int index);
JsonHashTable getHashTable(int index); JsonHashTable getHashTable(int index);
long getLong(int index); long getLong(int index);

View File

@ -53,6 +53,11 @@ JsonArray JsonHashTable::getArray(char* key)
return JsonArray(json, getToken(key)); return JsonArray(json, getToken(key));
} }
bool JsonHashTable::getBool(char* key)
{
return getBoolFromToken(getToken(key));
}
double JsonHashTable::getDouble(char* key) double JsonHashTable::getDouble(char* key)
{ {
return getDoubleFromToken(getToken(key)); return getDoubleFromToken(getToken(key));

View File

@ -22,6 +22,7 @@ public:
JsonHashTable() {} JsonHashTable() {}
JsonArray getArray(char* key); JsonArray getArray(char* key);
bool getBool(char* key);
double getDouble(char* key); double getDouble(char* key);
JsonHashTable getHashTable(char* key); JsonHashTable getHashTable(char* key);
long getLong(char* key); long getLong(char* key);

View File

@ -20,6 +20,23 @@ int JsonObjectBase::getNestedTokenCount(jsmntok_t* token)
return count; return count;
} }
bool JsonObjectBase::getBoolFromToken(jsmntok_t* token)
{
if (token->type != JSMN_PRIMITIVE) return 0;
// "true"
if (json[token->start] == 't') return true;
// "false"
if (json[token->start] == 'f') return false;
// "null"
if (json[token->start] == 'n') return false;
// number
return strtol(json + token->start, 0, 0) != 0;
}
double JsonObjectBase::getDoubleFromToken(jsmntok_t* token) double JsonObjectBase::getDoubleFromToken(jsmntok_t* token)
{ {
if (token->type != JSMN_PRIMITIVE) return 0; if (token->type != JSMN_PRIMITIVE) return 0;

View File

@ -39,6 +39,7 @@ protected:
static int getNestedTokenCount(jsmntok_t* token); static int getNestedTokenCount(jsmntok_t* token);
bool getBoolFromToken(jsmntok_t* token);
double getDoubleFromToken(jsmntok_t* token); double getDoubleFromToken(jsmntok_t* token);
long getLongFromToken(jsmntok_t* token); long getLongFromToken(jsmntok_t* token);
char* getStringFromToken(jsmntok_t* token); char* getStringFromToken(jsmntok_t* token);