mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 08:42:39 +01:00 
			
		
		
		
	Added JsonArray.getArray()
This commit is contained in:
		| @@ -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); | ||||
| } | ||||
| @@ -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 | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user