From 79953730fcd69541a8039d97cdf0e82347a9f97b Mon Sep 17 00:00:00 2001 From: Benoit Blanchon Date: Fri, 18 Jul 2014 16:18:03 +0200 Subject: [PATCH] Merged nestedTokenCount() and nextSibling() --- JsonParser/JsonArrayIterator.h | 2 +- JsonParser/JsonToken.cpp | 6 ++---- JsonParser/JsonToken.h | 8 +------- JsonParser/JsonValue.cpp | 10 ++++++++++ 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/JsonParser/JsonArrayIterator.h b/JsonParser/JsonArrayIterator.h index 05c98a64..87b85646 100644 --- a/JsonParser/JsonArrayIterator.h +++ b/JsonParser/JsonArrayIterator.h @@ -18,7 +18,7 @@ namespace ArduinoJson { public: - JsonArrayIterator(char* json, Internal::JsonToken& token) + JsonArrayIterator(char* json, Internal::JsonToken token) : json(json), token(token) { diff --git a/JsonParser/JsonToken.cpp b/JsonParser/JsonToken.cpp index 502917f6..8d0aac7e 100644 --- a/JsonParser/JsonToken.cpp +++ b/JsonParser/JsonToken.cpp @@ -3,19 +3,17 @@ using namespace ArduinoJson::Internal; -int JsonToken::nestedTokenCount() const +JsonToken JsonToken::nextSibling() const { jsmntok_t* t = token; int yetToVisit = t->size; - int count = 0; while (yetToVisit) { - count++; t++; yetToVisit--; yetToVisit += t->size; } - return count; + return t + 1; } \ No newline at end of file diff --git a/JsonParser/JsonToken.h b/JsonParser/JsonToken.h index 7331629f..5cf2dddd 100644 --- a/JsonParser/JsonToken.h +++ b/JsonParser/JsonToken.h @@ -32,10 +32,7 @@ namespace ArduinoJson return JsonToken(token + 1); } - JsonToken nextSibling() const - { - return JsonToken(token + 1 + nestedTokenCount()); - } + JsonToken nextSibling() const; bool operator!= (const JsonToken& other) { @@ -79,9 +76,6 @@ namespace ArduinoJson private: jsmntok_t* token; - - int nestedTokenCount() const; - }; } } diff --git a/JsonParser/JsonValue.cpp b/JsonParser/JsonValue.cpp index 98fd3cfb..221c10b2 100644 --- a/JsonParser/JsonValue.cpp +++ b/JsonParser/JsonValue.cpp @@ -11,6 +11,16 @@ using namespace ArduinoJson::Parser; 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() { if (!token.isPrimitive()) return 0;