mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 08:42:39 +01:00 
			
		
		
		
	Example: change the type of the json string from char* to char[] because it cause issue in memory protected environments.
This commit is contained in:
		| @@ -1,94 +1,94 @@ | ||||
| /* | ||||
| * malloc-free JSON parser for Arduino | ||||
| * Benoit Blanchon 2014 - MIT License | ||||
| */ | ||||
|  | ||||
| #include <JsonParser.h> | ||||
|  | ||||
| void ParseAnObject() | ||||
| { | ||||
|     char* json = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}"; | ||||
|  | ||||
|     JsonParser<32> parser; | ||||
|  | ||||
|     Serial.print("Parse "); | ||||
|     Serial.println(json); | ||||
|  | ||||
|     JsonHashTable hashTable = parser.parseHashTable(json); | ||||
|  | ||||
|     if (!hashTable.success()) | ||||
|     { | ||||
|         Serial.println("JsonParser.parseHashTable() failed"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     char* name = hashTable.getString("Name"); | ||||
|     Serial.print("name="); | ||||
|     Serial.println(name); | ||||
|  | ||||
|     JsonArray skills = hashTable.getArray("Skills"); | ||||
|     Serial.println("skills:"); | ||||
|     for (int i = 0; i < skills.getLength(); i++) | ||||
|     { | ||||
|         char* value = skills.getString(i); | ||||
|         Serial.print(i); | ||||
|         Serial.print(" "); | ||||
|         Serial.println(value); | ||||
|     } | ||||
|  | ||||
|     int age = hashTable.getLong("Age"); | ||||
|     Serial.print("age="); | ||||
|     Serial.println(age); | ||||
|  | ||||
|     bool online = hashTable.getBool("Online"); | ||||
|     Serial.print("online="); | ||||
|     Serial.println(online); | ||||
| } | ||||
|  | ||||
| void ParseAnArray() | ||||
| { | ||||
|     char* json = "[[1.2,3.4],[5.6,7.8]]"; | ||||
|  | ||||
|     JsonParser<32> parser; | ||||
|  | ||||
|     Serial.print("Parse "); | ||||
|     Serial.println(json); | ||||
|  | ||||
|     JsonArray array = parser.parseArray(json); | ||||
|  | ||||
|     if (!array.success()) | ||||
|     { | ||||
|         Serial.println("JsonParser.parseArray() failed"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     for (int i = 0; i < array.getLength(); i++) | ||||
|     { | ||||
|         Serial.println(i); | ||||
|  | ||||
|         JsonArray innerArray = array.getArray(i); | ||||
|  | ||||
|         for (int j = 0; j < innerArray.getLength(); j++) | ||||
|         { | ||||
|             double value = innerArray.getDouble(j); | ||||
|  | ||||
|             Serial.print("  "); | ||||
|             Serial.print(j); | ||||
|             Serial.print("="); | ||||
|             Serial.println(value); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| void setup() | ||||
| { | ||||
|     Serial.begin(9600); | ||||
|  | ||||
|     ParseAnObject(); | ||||
|     ParseAnArray(); | ||||
| } | ||||
|  | ||||
| void loop() | ||||
| { | ||||
|  | ||||
| } | ||||
| /* | ||||
| * malloc-free JSON parser for Arduino | ||||
| * Benoit Blanchon 2014 - MIT License | ||||
| */ | ||||
|  | ||||
| #include <JsonParser.h> | ||||
|  | ||||
| void ParseAnObject() | ||||
| { | ||||
|     char[] json = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}"; | ||||
|  | ||||
|     JsonParser<32> parser; | ||||
|  | ||||
|     Serial.print("Parse "); | ||||
|     Serial.println(json); | ||||
|  | ||||
|     JsonHashTable hashTable = parser.parseHashTable(json); | ||||
|  | ||||
|     if (!hashTable.success()) | ||||
|     { | ||||
|         Serial.println("JsonParser.parseHashTable() failed"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     char* name = hashTable.getString("Name"); | ||||
|     Serial.print("name="); | ||||
|     Serial.println(name); | ||||
|  | ||||
|     JsonArray skills = hashTable.getArray("Skills"); | ||||
|     Serial.println("skills:"); | ||||
|     for (int i = 0; i < skills.getLength(); i++) | ||||
|     { | ||||
|         char* value = skills.getString(i); | ||||
|         Serial.print(i); | ||||
|         Serial.print(" "); | ||||
|         Serial.println(value); | ||||
|     } | ||||
|  | ||||
|     int age = hashTable.getLong("Age"); | ||||
|     Serial.print("age="); | ||||
|     Serial.println(age); | ||||
|  | ||||
|     bool online = hashTable.getBool("Online"); | ||||
|     Serial.print("online="); | ||||
|     Serial.println(online); | ||||
| } | ||||
|  | ||||
| void ParseAnArray() | ||||
| { | ||||
|     char[] json = "[[1.2,3.4],[5.6,7.8]]"; | ||||
|  | ||||
|     JsonParser<32> parser; | ||||
|  | ||||
|     Serial.print("Parse "); | ||||
|     Serial.println(json); | ||||
|  | ||||
|     JsonArray array = parser.parseArray(json); | ||||
|  | ||||
|     if (!array.success()) | ||||
|     { | ||||
|         Serial.println("JsonParser.parseArray() failed"); | ||||
|         return; | ||||
|     } | ||||
|  | ||||
|     for (int i = 0; i < array.getLength(); i++) | ||||
|     { | ||||
|         Serial.println(i); | ||||
|  | ||||
|         JsonArray innerArray = array.getArray(i); | ||||
|  | ||||
|         for (int j = 0; j < innerArray.getLength(); j++) | ||||
|         { | ||||
|             double value = innerArray.getDouble(j); | ||||
|  | ||||
|             Serial.print("  "); | ||||
|             Serial.print(j); | ||||
|             Serial.print("="); | ||||
|             Serial.println(value); | ||||
|         } | ||||
|     } | ||||
| } | ||||
|  | ||||
| void setup() | ||||
| { | ||||
|     Serial.begin(9600); | ||||
|  | ||||
|     ParseAnObject(); | ||||
|     ParseAnArray(); | ||||
| } | ||||
|  | ||||
| void loop() | ||||
| { | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user