mirror of
https://github.com/eledio-devices/thirdparty-ArduinoJson.git
synced 2025-11-01 08:48:30 +01:00
59 lines
2.5 KiB
C++
59 lines
2.5 KiB
C++
// ArduinoJson - arduinojson.org
|
|
// Copyright Benoit Blanchon 2014-2018
|
|
// MIT License
|
|
|
|
#pragma once
|
|
|
|
#include "Json/JsonDeserializer.hpp"
|
|
#include "Reading/Reader.hpp"
|
|
#include "Writing/Writer.hpp"
|
|
|
|
namespace ArduinoJson {
|
|
// DeserializationError deserializeJson(TDocument& doc, TString input);
|
|
// TDocument = DynamicJsonDocument, StaticJsonDocument
|
|
// TString = const std::string&, const String&
|
|
template <typename TDocument, typename TString>
|
|
typename Internals::enable_if<!Internals::is_array<TString>::value,
|
|
DeserializationError>::type
|
|
deserializeJson(TDocument &doc, const TString &input) {
|
|
using namespace Internals;
|
|
return makeJsonDeserializer(&doc.buffer(), makeReader(input),
|
|
makeWriter(doc.buffer(), input), doc.nestingLimit)
|
|
.parse(doc.template to<JsonVariant>());
|
|
}
|
|
//
|
|
// DeserializationError deserializeJson(TDocument& doc, TChar* input);
|
|
// TDocument = DynamicJsonDocument, StaticJsonDocument
|
|
// TChar* = char*, const char*, const FlashStringHelper*
|
|
template <typename TDocument, typename TChar>
|
|
DeserializationError deserializeJson(TDocument &doc, TChar *input) {
|
|
using namespace Internals;
|
|
return makeJsonDeserializer(&doc.buffer(), makeReader(input),
|
|
makeWriter(doc.buffer(), input), doc.nestingLimit)
|
|
.parse(doc.template to<JsonVariant>());
|
|
}
|
|
//
|
|
// DeserializationError deserializeJson(TDocument& doc, TChar* input, size_t
|
|
// inputSize); TDocument = DynamicJsonDocument, StaticJsonDocument TChar* =
|
|
// char*, const char*, const FlashStringHelper*
|
|
template <typename TDocument, typename TChar>
|
|
DeserializationError deserializeJson(TDocument &doc, TChar *input,
|
|
size_t inputSize) {
|
|
using namespace Internals;
|
|
return makeJsonDeserializer(&doc.buffer(), makeReader(input, inputSize),
|
|
makeWriter(doc.buffer(), input), doc.nestingLimit)
|
|
.parse(doc.template to<JsonVariant>());
|
|
}
|
|
//
|
|
// DeserializationError deserializeJson(TDocument& doc, TStream input);
|
|
// TDocument = DynamicJsonDocument, StaticJsonDocument
|
|
// TStream = std::istream&, Stream&
|
|
template <typename TDocument, typename TStream>
|
|
DeserializationError deserializeJson(TDocument &doc, TStream &input) {
|
|
using namespace Internals;
|
|
return makeJsonDeserializer(&doc.buffer(), makeReader(input),
|
|
makeWriter(doc.buffer(), input), doc.nestingLimit)
|
|
.parse(doc.template to<JsonVariant>());
|
|
}
|
|
} // namespace ArduinoJson
|