mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added JsonHashTable.getArray()
This commit is contained in:
		| @@ -34,7 +34,7 @@ bool JsonParserBase::parse(char* jsonString) | ||||
| 	return true; | ||||
| } | ||||
|  | ||||
| char* JsonHashTable::getString(char* name) | ||||
| jsmntok_t* JsonHashTable::getToken(char* name) | ||||
| {	 | ||||
| 	// skip first token, it's the whole object | ||||
| 	int currentToken = 1; | ||||
| @@ -48,7 +48,7 @@ char* JsonHashTable::getString(char* name) | ||||
| 		// Compare with desired name | ||||
| 		if (strcmp(name, key) == 0) | ||||
| 		{ | ||||
| 			return json + tokens[currentToken + 1].start; | ||||
| 			return &tokens[currentToken + 1]; | ||||
| 		} | ||||
|  | ||||
| 		// move forward: key + value + nested tokens | ||||
| @@ -58,6 +58,12 @@ char* JsonHashTable::getString(char* name) | ||||
| 	return NULL; | ||||
| } | ||||
|  | ||||
| JsonArray JsonHashTable::getArray(char* key) | ||||
| { | ||||
| 	jsmntok_t* token = getToken(key); | ||||
| 	return JsonArray(json, token); | ||||
| } | ||||
|  | ||||
| char* JsonArray::getString(int index) | ||||
| { | ||||
| 	if (json == NULL) return NULL; | ||||
|   | ||||
| @@ -10,8 +10,6 @@ | ||||
| #include <Arduino.h> | ||||
| #include "utility/jsmn.h" | ||||
|  | ||||
| class JsonArray; | ||||
|  | ||||
| class JsonObjectBase | ||||
| { | ||||
| public: | ||||
| @@ -41,6 +39,8 @@ protected: | ||||
| 	jsmntok_t* tokens; | ||||
| }; | ||||
|  | ||||
| class JsonArray; | ||||
|  | ||||
| class JsonHashTable : public JsonObjectBase | ||||
| { | ||||
| 	friend class JsonParserBase; | ||||
| @@ -52,7 +52,12 @@ public: | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	char* getString(char* key); | ||||
| 	char* getString(char* key) | ||||
| 	{ | ||||
| 		jsmntok_t* token = getToken(key); | ||||
| 		return token != NULL ? json + token->start : NULL; | ||||
| 	} | ||||
|  | ||||
| 	JsonArray getArray(char* key); | ||||
|  | ||||
| private: | ||||
| @@ -62,11 +67,14 @@ private: | ||||
| 	{ | ||||
|  | ||||
| 	} | ||||
|  | ||||
| 	jsmntok_t* getToken(char* key); | ||||
| }; | ||||
|  | ||||
| class JsonArray : public JsonObjectBase | ||||
| { | ||||
| 	friend class JsonParserBase; | ||||
| 	friend class JsonHashTable; | ||||
|  | ||||
| public: | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user