Added JsonArray.getArray()

This commit is contained in:
Benoit Blanchon
2014-01-11 11:18:53 +01:00
parent efe1dfba55
commit 583589c05c
2 changed files with 18 additions and 39 deletions

View File

@ -64,7 +64,7 @@ JsonArray JsonHashTable::getArray(char* key)
return JsonArray(json, token);
}
char* JsonArray::getString(int index)
jsmntok_t* JsonArray::getToken(int index)
{
if (json == NULL) return NULL;
if (tokens == NULL) return NULL;
@ -80,5 +80,11 @@ char* JsonArray::getString(int index)
currentToken += 1 + getNestedTokenCounts(currentToken);
}
return json + tokens[currentToken].start;
return &tokens[currentToken];
}
JsonArray JsonArray::getArray(int index)
{
jsmntok_t* token = getToken(index);
return JsonArray(json, token);
}

View File

@ -85,7 +85,13 @@ public:
}
char* getString(int index);
JsonArray getArray(int index);
char* getString(int index)
{
jsmntok_t* token = getToken(index);
return token != NULL ? json + token->start : NULL;
}
int getLength()
{
@ -99,6 +105,8 @@ private:
{
}
jsmntok_t* getToken(int index);
};
class JsonParserBase
@ -132,11 +140,7 @@ protected:
}
bool parse(char* json);
/*
char* getValueByIndex(int index);
char* getValueByKey(char* name);
int getArraySize();
*/
private:
char* buffer;
@ -160,37 +164,6 @@ private:
jsmntok_t tokens[N];
};
/*
template <int N>
class JsonArrayParser : public JsonParserBase
{
public:
JsonArrayParser()
: JsonParserBase(tokens, N + 1)
{
}
bool parse(char* json)
{
return parseAndCheckType(json, JSMN_ARRAY);
}
int getCount()
{
return getArraySize();
}
char* getValue(int index)
{
return getValueByIndex(index);
}
private:
jsmntok_t tokens[N + 1];
};
*/
#endif