Files
ArduinoJson/srcs/JsonBuffer.cpp

86 lines
1.5 KiB
C++
Raw Normal View History

2014-10-16 00:11:23 +02:00
#include "ArduinoJson/JsonBuffer.h"
2014-10-09 14:17:09 +02:00
#include <new>
2014-10-16 00:11:23 +02:00
#include "ArduinoJson/JsonValue.h"
#include "ArduinoJson/Internals/JsonParser.h"
#include "ArduinoJson/Internals/JsonNode.h"
JsonValue JsonBuffer::createValue()
{
2014-10-09 14:17:09 +02:00
return JsonValue(createNode());
}
2014-10-09 14:17:09 +02:00
JsonNode* JsonBuffer::createNode()
{
2014-10-09 14:17:09 +02:00
void* node = allocateNode();
if (!node) return 0;
2014-10-09 14:17:09 +02:00
return new (node) JsonNode();
2014-10-14 17:16:21 +02:00
}
2014-10-14 21:24:26 +02:00
JsonArray JsonBuffer::parseArray(char* json)
2014-10-14 17:16:21 +02:00
{
2014-10-14 21:24:26 +02:00
JsonParser parser(this, json);
2014-10-14 21:48:22 +02:00
return JsonArray(parser.parseAnything());
2014-10-15 14:54:31 +02:00
}
2014-10-15 23:27:38 +02:00
JsonNode* JsonBuffer::createArrayNode()
2014-10-15 14:54:31 +02:00
{
JsonNode* node = createNode();
if (node)
node->setAsArray(this);
return node;
}
2014-10-15 23:27:38 +02:00
JsonNode* JsonBuffer::createBoolNode(bool value)
2014-10-15 14:54:31 +02:00
{
JsonNode* node = createNode();
if (node)
2014-10-15 23:27:38 +02:00
node->setAsBoolean(value);
2014-10-15 14:54:31 +02:00
return node;
}
2014-10-15 23:27:38 +02:00
JsonNode* JsonBuffer::createDoubleNode(double value, int decimals)
2014-10-15 14:54:31 +02:00
{
JsonNode* node = createNode();
if (node)
2014-10-15 23:27:38 +02:00
node->setAsDouble(value, decimals);
2014-10-15 14:54:31 +02:00
return node;
}
2014-10-15 23:27:38 +02:00
JsonNode* JsonBuffer::createLongNode(long value)
2014-10-15 14:54:31 +02:00
{
JsonNode* node = createNode();
if (node)
2014-10-15 23:27:38 +02:00
node->setAsLong(value);
2014-10-15 14:54:31 +02:00
return node;
}
2014-10-15 23:10:52 +02:00
2014-10-15 23:27:38 +02:00
JsonNode* JsonBuffer::createObjectNode()
2014-10-15 23:10:52 +02:00
{
JsonNode* node = createNode();
if (node)
2014-10-15 23:27:38 +02:00
node->setAsObject(this);
2014-10-15 23:10:52 +02:00
return node;
}
2014-10-15 23:27:38 +02:00
JsonNode* JsonBuffer::createStringNode(const char* value)
{
JsonNode* node = createNode();
if (node)
node->setAsString(value);
return node;
}