mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	Added a note to avoid issue #10
This commit is contained in:
		| @@ -101,6 +101,33 @@ or | |||||||
|     JsonObject<8> nestedObject; |     JsonObject<8> nestedObject; | ||||||
|     array.add(nestedObject); |     array.add(nestedObject); | ||||||
|  |  | ||||||
|  | > ##### CAUTION! Nested objects must be in memory | ||||||
|  | > Calling `add()` makes the `JsonArray` store a pointer to the nested object. | ||||||
|  | > This is designed to avoid memory duplication. | ||||||
|  | > But it can only work if the object is in memory when `printTo()` is executed. | ||||||
|  | > For instance, don't do this: | ||||||
|  | >  | ||||||
|  | >     void addNestedObject() | ||||||
|  | >     { | ||||||
|  | >         JsonObject<2> nestedObject; | ||||||
|  | >         // ... | ||||||
|  | >         array.add(nestedObject); // <- DON'T !! | ||||||
|  | >          | ||||||
|  | >         // array now contains a pointer to a local variable that will be | ||||||
|  | >         // discarded as soon as the function exits  | ||||||
|  | >     }  | ||||||
|  | >      | ||||||
|  | > For the same reason, don't do this either: | ||||||
|  | >  | ||||||
|  | >     for( int i=0; i<100; i++) | ||||||
|  | >     { | ||||||
|  | >         JsonObject<2> nestedObject; | ||||||
|  | >         // ... | ||||||
|  | >         array.add(nestedObject); // <- DON'T !! | ||||||
|  | >     }   | ||||||
|  | >     // array now contains 100 pointers to the same a local variable | ||||||
|  | >     // that is out of the scope anyway | ||||||
|  |  | ||||||
| #### JSON Object | #### JSON Object | ||||||
|  |  | ||||||
| You create a JSON object (ie hash-table/dictionary) with the following line: | You create a JSON object (ie hash-table/dictionary) with the following line: | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user