mirror of
				https://github.com/eledio-devices/thirdparty-ArduinoJson.git
				synced 2025-10-31 16:14:11 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			95 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			95 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
| /*
 | |
| * 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<256> 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<256> 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()
 | |
| {
 | |
| 
 | |
| }
 |