+0.17 (future release)
+========================================
+
+Deprecated and removed features:
+--------------------------------
+* ...
+
+New features
+------------
+* ...
+
+Significant changes and bug fixes
+---------------------------------
+* When serializing with JSON_C_TO_STRING_PRETTY set, keep the opening and
+ closing curly or square braces on same line for empty objects or arrays.
+
+
0.16 (up to commit 66dcdf5, 2022-04-13)
========================================
struct json_object_iter iter;
printbuf_strappend(pb, "{" /*}*/);
- if (flags & JSON_C_TO_STRING_PRETTY)
- printbuf_strappend(pb, "\n");
json_object_object_foreachC(jso, iter)
{
if (had_children)
{
printbuf_strappend(pb, ",");
- if (flags & JSON_C_TO_STRING_PRETTY)
- printbuf_strappend(pb, "\n");
}
+ if (flags & JSON_C_TO_STRING_PRETTY)
+ printbuf_strappend(pb, "\n");
had_children = 1;
if (flags & JSON_C_TO_STRING_SPACED && !(flags & JSON_C_TO_STRING_PRETTY))
printbuf_strappend(pb, " ");
else if (iter.val->_to_json_string(iter.val, pb, level + 1, flags) < 0)
return -1;
}
- if (flags & JSON_C_TO_STRING_PRETTY)
+ if ((flags & JSON_C_TO_STRING_PRETTY) && had_children)
{
- if (had_children)
- printbuf_strappend(pb, "\n");
+ printbuf_strappend(pb, "\n");
indent(pb, level, flags);
}
if (flags & JSON_C_TO_STRING_SPACED && !(flags & JSON_C_TO_STRING_PRETTY))
size_t ii;
printbuf_strappend(pb, "[");
- if (flags & JSON_C_TO_STRING_PRETTY)
- printbuf_strappend(pb, "\n");
for (ii = 0; ii < json_object_array_length(jso); ii++)
{
struct json_object *val;
if (had_children)
{
printbuf_strappend(pb, ",");
- if (flags & JSON_C_TO_STRING_PRETTY)
- printbuf_strappend(pb, "\n");
}
+ if (flags & JSON_C_TO_STRING_PRETTY)
+ printbuf_strappend(pb, "\n");
had_children = 1;
if (flags & JSON_C_TO_STRING_SPACED && !(flags & JSON_C_TO_STRING_PRETTY))
printbuf_strappend(pb, " ");
else if (val->_to_json_string(val, pb, level + 1, flags) < 0)
return -1;
}
- if (flags & JSON_C_TO_STRING_PRETTY)
+ if ((flags & JSON_C_TO_STRING_PRETTY) && had_children)
{
- if (had_children)
- printbuf_strappend(pb, "\n");
+ printbuf_strappend(pb, "\n");
indent(pb, level, flags);
}
{
printf("\t%s: %s\n", key, json_object_to_json_string(val));
}
+
+ json_object *empty_array = json_object_new_array();
+ json_object *empty_obj = json_object_new_object();
+ json_object_object_add(my_object, "empty_array", empty_array);
+ json_object_object_add(my_object, "empty_obj", empty_obj);
printf("my_object.to_string()=%s\n", json_object_to_json_string(my_object));
json_object_put(my_array);