Merged nestedTokenCount() and nextSibling()

This commit is contained in:
Benoit Blanchon
2014-07-18 16:18:03 +02:00
parent 5d2ffc49fd
commit 79953730fc
4 changed files with 14 additions and 12 deletions

View File

@ -18,7 +18,7 @@ namespace ArduinoJson
{ {
public: public:
JsonArrayIterator(char* json, Internal::JsonToken& token) JsonArrayIterator(char* json, Internal::JsonToken token)
: json(json), token(token) : json(json), token(token)
{ {

View File

@ -3,19 +3,17 @@
using namespace ArduinoJson::Internal; using namespace ArduinoJson::Internal;
int JsonToken::nestedTokenCount() const JsonToken JsonToken::nextSibling() const
{ {
jsmntok_t* t = token; jsmntok_t* t = token;
int yetToVisit = t->size; int yetToVisit = t->size;
int count = 0;
while (yetToVisit) while (yetToVisit)
{ {
count++;
t++; t++;
yetToVisit--; yetToVisit--;
yetToVisit += t->size; yetToVisit += t->size;
} }
return count; return t + 1;
} }

View File

@ -32,10 +32,7 @@ namespace ArduinoJson
return JsonToken(token + 1); return JsonToken(token + 1);
} }
JsonToken nextSibling() const JsonToken nextSibling() const;
{
return JsonToken(token + 1 + nestedTokenCount());
}
bool operator!= (const JsonToken& other) bool operator!= (const JsonToken& other)
{ {
@ -79,9 +76,6 @@ namespace ArduinoJson
private: private:
jsmntok_t* token; jsmntok_t* token;
int nestedTokenCount() const;
}; };
} }
} }

View File

@ -11,6 +11,16 @@
using namespace ArduinoJson::Parser; using namespace ArduinoJson::Parser;
using namespace ArduinoJson::Internal; using namespace ArduinoJson::Internal;
JsonValue JsonValue::operator[](int index)
{
return JsonArray(json, token)[index];
}
JsonValue JsonValue::operator[](const char* key)
{
return JsonHashTable(json, token)[key];
}
JsonValue::operator bool() JsonValue::operator bool()
{ {
if (!token.isPrimitive()) return 0; if (!token.isPrimitive()) return 0;