JsonArray.h 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. /*
  2. * Arduino JSON library
  3. * Benoit Blanchon 2014 - MIT License
  4. */
  5. #pragma once
  6. #include "JsonValue.h"
  7. #include "JsonArrayIterator.h"
  8. #include "JsonToken.h"
  9. namespace ArduinoJson
  10. {
  11. namespace Parser
  12. {
  13. class JsonHashTable;
  14. class JsonArray
  15. {
  16. public:
  17. JsonArray()
  18. : token(0)
  19. {
  20. }
  21. JsonArray(char* json, Internal::JsonToken token)
  22. : json(json), token(token)
  23. {
  24. }
  25. bool success()
  26. {
  27. return token.isArray();
  28. }
  29. int size()
  30. {
  31. return success() ? token.size() : 0;
  32. }
  33. JsonValue operator[](int index);
  34. JsonArrayIterator begin()
  35. {
  36. return JsonArrayIterator(json, token.firstChild());
  37. }
  38. JsonArrayIterator end()
  39. {
  40. return JsonArrayIterator(json, token.nextSibling());
  41. }
  42. DEPRECATED int getLength()
  43. {
  44. return size();
  45. }
  46. DEPRECATED JsonArray getArray(int index)
  47. {
  48. return (JsonArray) (*this)[index];
  49. }
  50. DEPRECATED bool getBool(int index)
  51. {
  52. return (bool) (*this)[index];
  53. }
  54. DEPRECATED double getDouble(int index)
  55. {
  56. return (double) (*this)[index];
  57. }
  58. DEPRECATED JsonHashTable getHashTable(int index);
  59. DEPRECATED long getLong(int index)
  60. {
  61. return (long) (*this)[index];
  62. }
  63. DEPRECATED char* getString(int index)
  64. {
  65. return (char*) (*this)[index];
  66. }
  67. static JsonArray null()
  68. {
  69. return JsonArray();
  70. }
  71. private:
  72. char* json;
  73. Internal::JsonToken token;
  74. };
  75. }
  76. }