summaryrefslogtreecommitdiff
path: root/json-glib/json-generator.c
diff options
context:
space:
mode:
Diffstat (limited to 'json-glib/json-generator.c')
-rw-r--r--json-glib/json-generator.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/json-glib/json-generator.c b/json-glib/json-generator.c
index 346be65..4ccf320 100644
--- a/json-glib/json-generator.c
+++ b/json-glib/json-generator.c
@@ -394,13 +394,16 @@ dump_array (JsonGenerator *generator,
g_string_append_c (buffer, '[');
- if (pretty)
- g_string_append_c (buffer, '\n');
+ if (array_len == 0)
+ goto out;
for (i = 0; i < array_len; i++)
{
JsonNode *cur = json_array_get_element (array, i);
+ if (i == 0 && pretty)
+ g_string_append_c (buffer, '\n');
+
dump_node (generator, buffer, level + 1, NULL, cur);
if ((i + 1) != array_len)
@@ -416,6 +419,7 @@ dump_array (JsonGenerator *generator,
g_string_append_c (buffer, priv->indent_char);
}
+out:
g_string_append_c (buffer, ']');
}
@@ -434,9 +438,6 @@ dump_object (JsonGenerator *generator,
g_string_append_c (buffer, '{');
- if (pretty)
- g_string_append_c (buffer, '\n');
-
members = json_object_get_members_internal (object);
for (l = members->head; l != NULL; l = l->next)
@@ -444,6 +445,9 @@ dump_object (JsonGenerator *generator,
const gchar *member_name = l->data;
JsonNode *cur = json_object_get_member (object, member_name);
+ if (l->prev == NULL && pretty)
+ g_string_append_c (buffer, '\n');
+
dump_node (generator, buffer, level + 1, member_name, cur);
if (l->next != NULL)