JsonArray.cpp 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586
  1. #include "JsonArray.h"
  2. #include "JsonObject.h"
  3. #include "JsonValue.h"
  4. JsonValue JsonArray::operator[](int index) const
  5. {
  6. for (JsonNodeIterator it = beginChildren(); it != endChildren(); ++it)
  7. {
  8. if (!index) return JsonValue(*it);
  9. index--;
  10. }
  11. return JsonValue();
  12. }
  13. void JsonArray::add(bool value)
  14. {
  15. JsonNode* node = createNode();
  16. if (!node) return;
  17. node->setAsBoolean(value);
  18. addChild(node);
  19. }
  20. void JsonArray::add(char const* value)
  21. {
  22. JsonNode* node = createNode();
  23. if (!node) return;
  24. node->setAsString(value);
  25. addChild(node);
  26. }
  27. void JsonArray::add(double value, int decimals)
  28. {
  29. JsonNode* node = createNode();
  30. if (!node) return;
  31. node->setAsDouble(value, decimals);
  32. addChild(node);
  33. }
  34. void JsonArray::add(long value)
  35. {
  36. JsonNode* node = createNode(JSON_LONG);
  37. if (!node) return;
  38. node->setAsLong(value);
  39. addChild(node);
  40. }
  41. void JsonArray::add(JsonContainer nestedContainer)
  42. {
  43. JsonNode* node = createNode();
  44. if (!node) return;
  45. *node = *nestedContainer._node;
  46. addChild(node);
  47. }
  48. JsonArray JsonArray::createNestedArray()
  49. {
  50. JsonNode* node = createNode();
  51. if (node)
  52. {
  53. node->setAsArray(_node->getContainerBuffer());
  54. addChild(node);
  55. }
  56. return JsonArray(node);
  57. }
  58. JsonObject JsonArray::createNestedObject()
  59. {
  60. JsonNode* node = createNode();
  61. if (node)
  62. {
  63. node->setAsObject(_node->getContainerBuffer());
  64. addChild(node);
  65. }
  66. return JsonObject(node);
  67. }