mirror of
https://github.com/bblanchon/ArduinoJson.git
synced 2025-07-18 04:52:22 +02:00
Replaced JsonToken operators by meaningful methods
This commit is contained in:
@ -24,14 +24,14 @@ JsonValue JsonArray::operator[](int index)
|
||||
return JsonValue::null();
|
||||
|
||||
// skip first token, it's the whole object
|
||||
JsonToken currentToken = token + 1;
|
||||
JsonToken runningToken = token.firstChild();
|
||||
|
||||
// skip all tokens before the specified index
|
||||
for (int i = 0; i < index; i++)
|
||||
{
|
||||
// move forward: current + nested tokens
|
||||
currentToken += 1 + currentToken.nestedTokenCount();
|
||||
runningToken = runningToken.nextSibling();
|
||||
}
|
||||
|
||||
return JsonValue(json, currentToken);
|
||||
return JsonValue(json, runningToken);
|
||||
}
|
@ -45,12 +45,12 @@ namespace ArduinoJson
|
||||
|
||||
JsonArrayIterator begin()
|
||||
{
|
||||
return JsonArrayIterator(json, token);
|
||||
return JsonArrayIterator(json, token.firstChild());
|
||||
}
|
||||
|
||||
JsonArrayIterator end()
|
||||
{
|
||||
return JsonArrayIterator(json, token + token.nestedTokenCount());
|
||||
return JsonArrayIterator(json, token.nextSibling());
|
||||
}
|
||||
|
||||
DEPRECATED int getLength()
|
||||
|
@ -23,7 +23,7 @@ namespace ArduinoJson
|
||||
JsonArrayIterator operator++()
|
||||
{
|
||||
JsonArrayIterator prev = *this;
|
||||
token += 1;
|
||||
token = token.nextSibling();
|
||||
return prev;
|
||||
}
|
||||
|
||||
|
@ -26,7 +26,7 @@ JsonValue JsonHashTable::getValue(const char* desiredKey)
|
||||
return JsonValue::null();
|
||||
|
||||
// skip first token, it's the whole object
|
||||
JsonToken runningToken = token + 1;
|
||||
JsonToken runningToken = token.firstChild();
|
||||
|
||||
// scan each keys
|
||||
for (int i = 0; i < token.size() / 2; i++)
|
||||
@ -35,7 +35,7 @@ JsonValue JsonHashTable::getValue(const char* desiredKey)
|
||||
char* key = runningToken.getText(json);
|
||||
|
||||
// move to the 'value' token
|
||||
runningToken += 1;
|
||||
runningToken = runningToken.nextSibling();
|
||||
|
||||
// compare with desired name
|
||||
if (strcmp(desiredKey, key) == 0)
|
||||
@ -45,7 +45,7 @@ JsonValue JsonHashTable::getValue(const char* desiredKey)
|
||||
}
|
||||
|
||||
// skip nested tokens
|
||||
runningToken += 1 + runningToken.nestedTokenCount();
|
||||
runningToken = runningToken.nextSibling();
|
||||
}
|
||||
|
||||
// nothing found, return NULL
|
||||
|
@ -27,14 +27,14 @@ namespace ArduinoJson
|
||||
return json + token->start;
|
||||
}
|
||||
|
||||
JsonToken operator+ (int n)
|
||||
JsonToken firstChild() const
|
||||
{
|
||||
return JsonToken(token + n);
|
||||
return JsonToken(token + 1);
|
||||
}
|
||||
|
||||
void operator+= (int n)
|
||||
JsonToken nextSibling() const
|
||||
{
|
||||
token += n;
|
||||
return JsonToken(token + 1 + nestedTokenCount());
|
||||
}
|
||||
|
||||
bool operator!= (const JsonToken& other)
|
||||
@ -77,10 +77,11 @@ namespace ArduinoJson
|
||||
return JsonToken(0);
|
||||
}
|
||||
|
||||
int nestedTokenCount() const;
|
||||
|
||||
private:
|
||||
jsmntok_t* token;
|
||||
|
||||
int nestedTokenCount() const;
|
||||
|
||||
};
|
||||
}
|
||||
}
|
||||
|
@ -11,7 +11,7 @@ namespace JsonParserTests
|
||||
{
|
||||
public:
|
||||
|
||||
TEST_METHOD(SimpleIteraton)
|
||||
TEST_METHOD(ThreeIntegers)
|
||||
{
|
||||
char json [] = "[1,2,3]";
|
||||
JsonParser<4> parser;
|
||||
|
Reference in New Issue
Block a user