diff --git a/mio/lib/json.c b/mio/lib/json.c index fe39ef9..fcbac2b 100644 --- a/mio/lib/json.c +++ b/mio/lib/json.c @@ -1120,8 +1120,12 @@ int mio_jsonwr_write (mio_jsonwr_t* jsonwr, mio_json_inst_t inst, int is_uchars, !(sn->state == MIO_JSON_STATE_IN_OBJECT && sn->obj_awaiting_val)) goto incompatible_inst; if (sn->index > 0) WRITE_COMMA (jsonwr); sn->index++; + if ((jsonwr->flags & MIO_JSONWR_FLAG_PRETTY) && + !(sn->state == MIO_JSON_STATE_IN_OBJECT && sn->obj_awaiting_val)) + { + WRITE_INDENT (jsonwr); + } sn->obj_awaiting_val = 0; - if (jsonwr->flags & MIO_JSONWR_FLAG_PRETTY) WRITE_INDENT (jsonwr); WRITE_BYTES_NOESC (jsonwr, "[", 1); if (jsonwr->flags & MIO_JSONWR_FLAG_PRETTY) WRITE_LINE_BREAK (jsonwr); if (push_write_state(jsonwr, MIO_JSON_STATE_IN_ARRAY) <= -1) return -1; @@ -1133,8 +1137,12 @@ int mio_jsonwr_write (mio_jsonwr_t* jsonwr, mio_json_inst_t inst, int is_uchars, !(sn->state == MIO_JSON_STATE_IN_OBJECT && sn->obj_awaiting_val)) goto incompatible_inst; if (sn->index > 0) WRITE_COMMA (jsonwr); sn->index++; + if ((jsonwr->flags & MIO_JSONWR_FLAG_PRETTY) && + !(sn->state == MIO_JSON_STATE_IN_OBJECT && sn->obj_awaiting_val)) + { + WRITE_INDENT (jsonwr); + } sn->obj_awaiting_val = 0; - if (jsonwr->flags & MIO_JSONWR_FLAG_PRETTY) WRITE_INDENT (jsonwr); WRITE_BYTES_NOESC (jsonwr, "{", 1); if (jsonwr->flags & MIO_JSONWR_FLAG_PRETTY) WRITE_LINE_BREAK (jsonwr); if (push_write_state (jsonwr, MIO_JSON_STATE_IN_OBJECT) <= -1) return -1;