json: fix newline at end of array
The json print library was toggling pretty print at the end of an array to workaround a bug in underlying json_writer. Instead, just fix json_writer to pretty print array correctly. Signed-off-by: Stephen Hemminger <stephen@networkplumber.org> Signed-off-by: David Ahern <dsahern@gmail.com>
This commit is contained in:
parent
bff0f25241
commit
6cbd9465bc
|
|
@ -89,9 +89,7 @@ void open_json_array(enum output_type type, const char *str)
|
||||||
void close_json_array(enum output_type type, const char *str)
|
void close_json_array(enum output_type type, const char *str)
|
||||||
{
|
{
|
||||||
if (_IS_JSON_CONTEXT(type)) {
|
if (_IS_JSON_CONTEXT(type)) {
|
||||||
jsonw_pretty(_jw, false);
|
|
||||||
jsonw_end_array(_jw);
|
jsonw_end_array(_jw);
|
||||||
jsonw_pretty(_jw, true);
|
|
||||||
} else if (_IS_FP_CONTEXT(type)) {
|
} else if (_IS_FP_CONTEXT(type)) {
|
||||||
printf("%s", str);
|
printf("%s", str);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -180,10 +180,15 @@ void jsonw_end_object(json_writer_t *self)
|
||||||
void jsonw_start_array(json_writer_t *self)
|
void jsonw_start_array(json_writer_t *self)
|
||||||
{
|
{
|
||||||
jsonw_begin(self, '[');
|
jsonw_begin(self, '[');
|
||||||
|
if (self->pretty)
|
||||||
|
putc(' ', self->out);
|
||||||
}
|
}
|
||||||
|
|
||||||
void jsonw_end_array(json_writer_t *self)
|
void jsonw_end_array(json_writer_t *self)
|
||||||
{
|
{
|
||||||
|
if (self->pretty && self->sep)
|
||||||
|
putc(' ', self->out);
|
||||||
|
self->sep = '\0';
|
||||||
jsonw_end(self, ']');
|
jsonw_end(self, ']');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue