JsonBuffer.cpp 995 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. // Copyright Benoit Blanchon 2014
  2. // MIT License
  3. //
  4. // Arduino JSON library
  5. // https://github.com/bblanchon/ArduinoJson
  6. #include "ArduinoJson/JsonBuffer.hpp"
  7. #include <new> // required for the placement new
  8. #include "ArduinoJson/JsonArray.hpp"
  9. #include "ArduinoJson/JsonObject.hpp"
  10. #include "ArduinoJson/JsonValue.hpp"
  11. #include "ArduinoJson/Internals/JsonParser.hpp"
  12. using namespace ArduinoJson;
  13. using namespace ArduinoJson::Internals;
  14. JsonArray &JsonBuffer::createArray() {
  15. void *ptr = alloc(sizeof(JsonArray));
  16. if (ptr) return *new (ptr) JsonArray(this);
  17. return JsonArray::invalid();
  18. }
  19. JsonObject &JsonBuffer::createObject() {
  20. void *ptr = alloc(sizeof(JsonObject));
  21. if (ptr) return *new (ptr) JsonObject(this);
  22. return JsonObject::invalid();
  23. }
  24. JsonArray &JsonBuffer::parseArray(char *json) {
  25. JsonParser parser(this, json);
  26. return parser.parseArray();
  27. }
  28. JsonObject &JsonBuffer::parseObject(char *json) {
  29. JsonParser parser(this, json);
  30. return parser.parseObject();
  31. }