diff --git a/src/core/store_json.c b/src/core/store_json.c
index c8e35fe73584632fb60bd524835862d0da00a9ce..a2c117b1f10d07308e7db9afd698c32933342e49 100644 (file)
--- a/src/core/store_json.c
+++ b/src/core/store_json.c
return 0;
}
- if ((f->current >= 1) && (obj->type != SDB_ATTRIBUTE)) {
- /* new entry of a previous type or a new type on the same level;
+ if ((f->context[f->current] != SDB_HOST)
+ && (obj->type != SDB_ATTRIBUTE)) {
+ /* new entry of the same type or a parent object;
* rewind to the right state */
while ((f->current > 0)
- && (f->context[f->current] == obj->type)) {
+ && (f->context[f->current] != obj->type)) {
sdb_strbuf_append(f->buf, "}]");
--f->current;
}