JsonParserExample.ino 1.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. /*
  2. * malloc-free JSON parser for Arduino
  3. * Benoit Blanchon 2014 - MIT License
  4. */
  5. #include <JsonParser.h>
  6. void ParseAnObject()
  7. {
  8. char* json = "{\"Name\":\"Blanchon\",\"Skills\":[\"C\",\"C++\",\"C#\"],\"Age\":32,\"Online\":true}";
  9. JsonParser<256> parser;
  10. Serial.print("Parse ");
  11. Serial.println(json);
  12. JsonHashTable hashTable = parser.parseHashTable(json);
  13. if (!hashTable.success())
  14. {
  15. Serial.println("JsonParser.parseHashTable() failed");
  16. return;
  17. }
  18. char* name = hashTable.getString("Name");
  19. Serial.print("name=");
  20. Serial.println(name);
  21. JsonArray skills = hashTable.getArray("Skills");
  22. Serial.println("skills:");
  23. for (int i = 0; i < skills.getLength(); i++)
  24. {
  25. char* value = skills.getString(i);
  26. Serial.print(i);
  27. Serial.print(" ");
  28. Serial.println(value);
  29. }
  30. int age = hashTable.getLong("Age");
  31. Serial.print("age=");
  32. Serial.println(age);
  33. bool online = hashTable.getBool("Online");
  34. Serial.print("online=");
  35. Serial.println(online);
  36. }
  37. void ParseAnArray()
  38. {
  39. char* json = "[[1.2,3.4],[5.6,7.8]]";
  40. JsonParser<256> parser;
  41. Serial.print("Parse ");
  42. Serial.println(json);
  43. JsonArray array = parser.parseArray(json);
  44. if (!array.success())
  45. {
  46. Serial.println("JsonParser.parseArray() failed");
  47. return;
  48. }
  49. for (int i = 0; i < array.getLength(); i++)
  50. {
  51. Serial.println(i);
  52. JsonArray innerArray = array.getArray(i);
  53. for (int j = 0; j < innerArray.getLength(); j++)
  54. {
  55. double value = innerArray.getDouble(j);
  56. Serial.print(" ");
  57. Serial.print(j);
  58. Serial.print("=");
  59. Serial.println(value);
  60. }
  61. }
  62. }
  63. void setup()
  64. {
  65. Serial.begin(9600);
  66. ParseAnObject();
  67. ParseAnArray();
  68. }
  69. void loop()
  70. {
  71. }