Added alwaysIncludeEmptyCollectionElements to Serializer

This commit is contained in:
Benedikt-Alexander Mokroß 2021-10-19 11:06:15 +02:00
parent 62b9908971
commit 071dd3b3ed

View File

@ -74,6 +74,11 @@ public:
*/
bool alwaysIncludeRequired = false;
/**
* Always include array or map elements, even if their value is `nullptr`.
*/
bool alwaysIncludeEmptyCollectionElements = false;
/**
* If `true` - insert string `"<unknown-type>"` in json field value in case unknown field found.
* Fail if `false`.
@ -136,7 +141,7 @@ private:
bool first = true;
for(auto& value : *list) {
if(value || serializer->getConfig()->includeNullFields) {
if(value || serializer->getConfig()->includeNullFields || serializer->getConfig()->alwaysIncludeEmptyCollectionElements) {
(first) ? first = false : stream->writeSimple(",", 1);
serializer->serialize(stream, value);
}
@ -161,7 +166,7 @@ private:
for(auto& pair : *map) {
const auto& value = pair.second;
if(value || serializer->getConfig()->includeNullFields) {
if(value || serializer->getConfig()->includeNullFields || serializer->getConfig()->alwaysIncludeEmptyCollectionElements) {
(first) ? first = false : stream->writeSimple(",", 1);
const auto& key = pair.first;
serializeString(stream, key->getData(), key->getSize());