| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- /*
- * 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()
- {
- }
|