SnapmaticJson: fix indent of empty array and objects

This commit is contained in:
Syping 2023-03-31 01:33:54 +02:00
parent 7e13f01d6d
commit a10d259db1

View file

@ -27,14 +27,14 @@ void serializer(std::ostream &os, const boost::json::value &jv, std::string *ind
indent = &indent_;
switch (jv.kind()) {
case boost::json::kind::object: {
auto const &obj = jv.get_object();
if (!obj.empty()) {
if (do_indent) {
os << "{\n";
indent->append(4, ' ');
}
else
os << "{";
auto const &obj = jv.get_object();
if (!obj.empty()) {
auto it = obj.begin();
for (;;) {
if (do_indent)
@ -49,7 +49,6 @@ void serializer(std::ostream &os, const boost::json::value &jv, std::string *ind
else
os << ",";
}
}
if (do_indent) {
os << "\n";
indent->resize(indent->size() - 4);
@ -57,17 +56,20 @@ void serializer(std::ostream &os, const boost::json::value &jv, std::string *ind
}
else
os << "}";
}
else
os << "{}";
break;
}
case boost::json::kind::array: {
auto const &arr = jv.get_array();
if (!arr.empty()) {
if (do_indent) {
os << "[\n";
indent->append(4, ' ');
}
else
os << "[";
auto const &arr = jv.get_array();
if (!arr.empty()) {
auto it = arr.begin();
for (;;) {
if (do_indent)
@ -80,7 +82,6 @@ void serializer(std::ostream &os, const boost::json::value &jv, std::string *ind
else
os << ",";
}
}
if (do_indent) {
os << "\n";
indent->resize(indent->size() - 4);
@ -88,6 +89,9 @@ void serializer(std::ostream &os, const boost::json::value &jv, std::string *ind
}
else
os << "]";
}
else
os << "[]";
break;
}
case boost::json::kind::string: {