diff --git a/examples/JsonParserExample/JsonParserExample.ino b/examples/JsonParserExample/JsonParserExample.ino new file mode 100644 index 00000000..b49fb07d --- /dev/null +++ b/examples/JsonParserExample/JsonParserExample.ino @@ -0,0 +1,94 @@ +/* +* malloc-free JSON parser for Arduino +* Benoit Blanchon 2014 - MIT License +*/ + +#include + +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() +{ + +}