mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Fixed bug in JsonArray::begin() and end()
This commit is contained in:
		| @@ -35,19 +35,19 @@ namespace ArduinoJson | ||||
|  | ||||
|             int size() | ||||
|             { | ||||
|                 return isArray() ? JsonToken::size() : 0; | ||||
|                 return isArray() ? childrenCount() : 0; | ||||
|             } | ||||
|  | ||||
|             JsonValue operator[](int index); | ||||
|  | ||||
|             JsonArrayIterator begin() | ||||
|             { | ||||
|                 return firstChild(); | ||||
|                 return isArray() ? firstChild() : null(); | ||||
|             } | ||||
|  | ||||
|             JsonArrayIterator end() | ||||
|             { | ||||
|                 return nextSibling(); | ||||
|                 return isArray() ? nextSibling() : null(); | ||||
|             } | ||||
|  | ||||
|             DEPRECATED int getLength() | ||||
|   | ||||
| @@ -28,7 +28,7 @@ JsonValue JsonObject::operator[](const char* desiredKey) | ||||
|     JsonToken runningToken = firstChild(); | ||||
|  | ||||
|     // scan each keys | ||||
|     for (int i = 0; i < size() / 2; i++) | ||||
|     for (int i = 0; i < childrenCount() / 2; i++) | ||||
|     { | ||||
|         // get 'key' token string | ||||
|         char* key = runningToken.getText(); | ||||
|   | ||||
| @@ -75,7 +75,7 @@ namespace ArduinoJson | ||||
|                 return token != 0 && token->type == JSMN_STRING; | ||||
|             } | ||||
|  | ||||
|             int size() | ||||
|             int childrenCount() | ||||
|             { | ||||
|                 return token->size; | ||||
|             } | ||||
|   | ||||
| @@ -10,6 +10,23 @@ namespace JsonParserTests | ||||
| 	TEST_CLASS(JsonArrayIteratorTests) | ||||
| 	{ | ||||
| 	public: | ||||
|  | ||||
|         TEST_METHOD(EmptyJson) | ||||
|         { | ||||
|             char json[] = ""; | ||||
|             JsonParser<1> parser; | ||||
|  | ||||
|             JsonArray a = parser.parse(json); | ||||
|  | ||||
|             int loopCount = 0; | ||||
|  | ||||
|             for (long i : a) | ||||
|             { | ||||
|                 loopCount++; | ||||
|             } | ||||
|  | ||||
|             Assert::AreEqual(0, loopCount); | ||||
|         } | ||||
| 		 | ||||
| 		TEST_METHOD(ThreeIntegers) | ||||
| 		{ | ||||
| @@ -17,8 +34,7 @@ namespace JsonParserTests | ||||
|             long expected [] = { 1, 2, 3 }; | ||||
|             JsonParser<4> parser; | ||||
|  | ||||
|             JsonValue v = parser.parse(json); | ||||
|             JsonArray a = (ArduinoJson::Parser::JsonArray)v; | ||||
|             JsonArray a = parser.parse(json); | ||||
|  | ||||
|             int index = 0; | ||||
|  | ||||
| @@ -27,6 +43,5 @@ namespace JsonParserTests | ||||
|                 Assert::AreEqual(expected[index++], i); | ||||
|             } | ||||
| 		} | ||||
|  | ||||
| 	}; | ||||
| } | ||||
		Reference in New Issue
	
	Block a user