mirror of
https://github.com/json-c/json-c.git
synced 2026-04-04 04:49:06 +08:00
Merge pull request #453 from darjankrijan/master
Fixed misalignment in JSON string due to space after \n being printed...
This commit is contained in:
@@ -395,7 +395,7 @@ static int json_object_object_to_json_string(struct json_object* jso,
|
|||||||
printbuf_strappend(pb, "\n");
|
printbuf_strappend(pb, "\n");
|
||||||
}
|
}
|
||||||
had_children = 1;
|
had_children = 1;
|
||||||
if (flags & JSON_C_TO_STRING_SPACED)
|
if (flags & JSON_C_TO_STRING_SPACED && !(flags & JSON_C_TO_STRING_PRETTY))
|
||||||
printbuf_strappend(pb, " ");
|
printbuf_strappend(pb, " ");
|
||||||
indent(pb, level+1, flags);
|
indent(pb, level+1, flags);
|
||||||
printbuf_strappend(pb, "\"");
|
printbuf_strappend(pb, "\"");
|
||||||
@@ -416,7 +416,7 @@ static int json_object_object_to_json_string(struct json_object* jso,
|
|||||||
printbuf_strappend(pb, "\n");
|
printbuf_strappend(pb, "\n");
|
||||||
indent(pb,level,flags);
|
indent(pb,level,flags);
|
||||||
}
|
}
|
||||||
if (flags & JSON_C_TO_STRING_SPACED)
|
if (flags & JSON_C_TO_STRING_SPACED && !(flags & JSON_C_TO_STRING_PRETTY))
|
||||||
return printbuf_strappend(pb, /*{*/ " }");
|
return printbuf_strappend(pb, /*{*/ " }");
|
||||||
else
|
else
|
||||||
return printbuf_strappend(pb, /*{*/ "}");
|
return printbuf_strappend(pb, /*{*/ "}");
|
||||||
@@ -1134,7 +1134,7 @@ static int json_object_array_to_json_string(struct json_object* jso,
|
|||||||
printbuf_strappend(pb, "\n");
|
printbuf_strappend(pb, "\n");
|
||||||
}
|
}
|
||||||
had_children = 1;
|
had_children = 1;
|
||||||
if (flags & JSON_C_TO_STRING_SPACED)
|
if (flags & JSON_C_TO_STRING_SPACED && !(flags&JSON_C_TO_STRING_PRETTY))
|
||||||
printbuf_strappend(pb, " ");
|
printbuf_strappend(pb, " ");
|
||||||
indent(pb, level + 1, flags);
|
indent(pb, level + 1, flags);
|
||||||
val = json_object_array_get_idx(jso, ii);
|
val = json_object_array_get_idx(jso, ii);
|
||||||
@@ -1151,7 +1151,7 @@ static int json_object_array_to_json_string(struct json_object* jso,
|
|||||||
indent(pb,level,flags);
|
indent(pb,level,flags);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (flags & JSON_C_TO_STRING_SPACED)
|
if (flags & JSON_C_TO_STRING_SPACED && !(flags&JSON_C_TO_STRING_PRETTY))
|
||||||
return printbuf_strappend(pb, " ]");
|
return printbuf_strappend(pb, " ]");
|
||||||
return printbuf_strappend(pb, "]");
|
return printbuf_strappend(pb, "]");
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,6 +19,7 @@ static struct {
|
|||||||
{ "plain", JSON_C_TO_STRING_PLAIN },
|
{ "plain", JSON_C_TO_STRING_PLAIN },
|
||||||
{ "spaced", JSON_C_TO_STRING_SPACED },
|
{ "spaced", JSON_C_TO_STRING_SPACED },
|
||||||
{ "pretty", JSON_C_TO_STRING_PRETTY },
|
{ "pretty", JSON_C_TO_STRING_PRETTY },
|
||||||
|
{ "pretty_tab", JSON_C_TO_STRING_PRETTY_TAB },
|
||||||
};
|
};
|
||||||
|
|
||||||
#ifndef NELEM
|
#ifndef NELEM
|
||||||
|
|||||||
@@ -19,4 +19,20 @@ for flag in plain spaced pretty ; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Spaced and pretty JSON string
|
||||||
|
run_output_test -o test1Formatted_spaced_pretty \
|
||||||
|
test1Formatted spaced pretty
|
||||||
|
_err2=$?
|
||||||
|
if [ $_err -eq 0 ] ; then
|
||||||
|
_err=$_err2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Spaced and pretty JSON string using tabs
|
||||||
|
run_output_test -o test1Formatted_spaced_pretty_pretty_tab \
|
||||||
|
test1Formatted spaced pretty pretty_tab
|
||||||
|
_err2=$?
|
||||||
|
if [ $_err -eq 0 ] ; then
|
||||||
|
_err=$_err2
|
||||||
|
fi
|
||||||
|
|
||||||
exit $_err
|
exit $_err
|
||||||
|
|||||||
86
tests/test1Formatted_spaced_pretty.expected
Normal file
86
tests/test1Formatted_spaced_pretty.expected
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
my_string=
|
||||||
|
my_string.to_string()="\t"
|
||||||
|
my_string=\
|
||||||
|
my_string.to_string()="\\"
|
||||||
|
my_string=/
|
||||||
|
my_string.to_string()="\/"
|
||||||
|
my_string.to_string(NOSLASHESCAPE)="/"
|
||||||
|
my_string=/foo/bar/baz
|
||||||
|
my_string.to_string()="\/foo\/bar\/baz"
|
||||||
|
my_string.to_string(NOSLASHESCAPE)="/foo/bar/baz"
|
||||||
|
my_string=foo
|
||||||
|
my_string.to_string()="foo"
|
||||||
|
my_int=9
|
||||||
|
my_int.to_string()=9
|
||||||
|
my_array=
|
||||||
|
[0]=1
|
||||||
|
[1]=2
|
||||||
|
[2]=3
|
||||||
|
[3]=null
|
||||||
|
[4]=5
|
||||||
|
my_array.to_string()=[
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
null,
|
||||||
|
5
|
||||||
|
]
|
||||||
|
my_array=
|
||||||
|
[0]=1
|
||||||
|
[1]=2
|
||||||
|
[2]=3
|
||||||
|
[3]=4
|
||||||
|
[4]=5
|
||||||
|
[5]=null
|
||||||
|
[6]=7
|
||||||
|
my_array.to_string()=[1,2,3,4,5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[2,3,4,5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[3,4,5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[4,5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[]
|
||||||
|
after del_idx(0,1)=-1, my_array.to_string()=[]
|
||||||
|
after del_idx(0,7)=0, my_array.to_string()=[]
|
||||||
|
after del_idx(0,8)=-1, my_array.to_string()=[1,2,3,4,5,null,7]
|
||||||
|
after del_idx(0,6)=0, my_array.to_string()=[7]
|
||||||
|
after adding more entries, my_array.to_string()=[7,"s1","s2","s3"]
|
||||||
|
my_array=
|
||||||
|
[0]=3
|
||||||
|
[1]=1
|
||||||
|
[2]=2
|
||||||
|
[3]=null
|
||||||
|
[4]=0
|
||||||
|
my_array.to_string()=[
|
||||||
|
3,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
null,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
my_array=
|
||||||
|
[0]=null
|
||||||
|
[1]=0
|
||||||
|
[2]=1
|
||||||
|
[3]=2
|
||||||
|
[4]=3
|
||||||
|
my_array.to_string()=[
|
||||||
|
null,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3
|
||||||
|
]
|
||||||
|
baz_obj.to_string()="fark"
|
||||||
|
my_object=
|
||||||
|
abc: 12
|
||||||
|
foo: "bar"
|
||||||
|
bool0: false
|
||||||
|
bool1: true
|
||||||
|
my_object.to_string()={
|
||||||
|
"abc": 12,
|
||||||
|
"foo": "bar",
|
||||||
|
"bool0": false,
|
||||||
|
"bool1": true
|
||||||
|
}
|
||||||
86
tests/test1Formatted_spaced_pretty_pretty_tab.expected
Normal file
86
tests/test1Formatted_spaced_pretty_pretty_tab.expected
Normal file
@@ -0,0 +1,86 @@
|
|||||||
|
my_string=
|
||||||
|
my_string.to_string()="\t"
|
||||||
|
my_string=\
|
||||||
|
my_string.to_string()="\\"
|
||||||
|
my_string=/
|
||||||
|
my_string.to_string()="\/"
|
||||||
|
my_string.to_string(NOSLASHESCAPE)="/"
|
||||||
|
my_string=/foo/bar/baz
|
||||||
|
my_string.to_string()="\/foo\/bar\/baz"
|
||||||
|
my_string.to_string(NOSLASHESCAPE)="/foo/bar/baz"
|
||||||
|
my_string=foo
|
||||||
|
my_string.to_string()="foo"
|
||||||
|
my_int=9
|
||||||
|
my_int.to_string()=9
|
||||||
|
my_array=
|
||||||
|
[0]=1
|
||||||
|
[1]=2
|
||||||
|
[2]=3
|
||||||
|
[3]=null
|
||||||
|
[4]=5
|
||||||
|
my_array.to_string()=[
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3,
|
||||||
|
null,
|
||||||
|
5
|
||||||
|
]
|
||||||
|
my_array=
|
||||||
|
[0]=1
|
||||||
|
[1]=2
|
||||||
|
[2]=3
|
||||||
|
[3]=4
|
||||||
|
[4]=5
|
||||||
|
[5]=null
|
||||||
|
[6]=7
|
||||||
|
my_array.to_string()=[1,2,3,4,5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[2,3,4,5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[3,4,5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[4,5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[5,null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[null,7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[7]
|
||||||
|
after del_idx(0,1)=0, my_array.to_string()=[]
|
||||||
|
after del_idx(0,1)=-1, my_array.to_string()=[]
|
||||||
|
after del_idx(0,7)=0, my_array.to_string()=[]
|
||||||
|
after del_idx(0,8)=-1, my_array.to_string()=[1,2,3,4,5,null,7]
|
||||||
|
after del_idx(0,6)=0, my_array.to_string()=[7]
|
||||||
|
after adding more entries, my_array.to_string()=[7,"s1","s2","s3"]
|
||||||
|
my_array=
|
||||||
|
[0]=3
|
||||||
|
[1]=1
|
||||||
|
[2]=2
|
||||||
|
[3]=null
|
||||||
|
[4]=0
|
||||||
|
my_array.to_string()=[
|
||||||
|
3,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
null,
|
||||||
|
0
|
||||||
|
]
|
||||||
|
my_array=
|
||||||
|
[0]=null
|
||||||
|
[1]=0
|
||||||
|
[2]=1
|
||||||
|
[3]=2
|
||||||
|
[4]=3
|
||||||
|
my_array.to_string()=[
|
||||||
|
null,
|
||||||
|
0,
|
||||||
|
1,
|
||||||
|
2,
|
||||||
|
3
|
||||||
|
]
|
||||||
|
baz_obj.to_string()="fark"
|
||||||
|
my_object=
|
||||||
|
abc: 12
|
||||||
|
foo: "bar"
|
||||||
|
bool0: false
|
||||||
|
bool1: true
|
||||||
|
my_object.to_string()={
|
||||||
|
"abc": 12,
|
||||||
|
"foo": "bar",
|
||||||
|
"bool0": false,
|
||||||
|
"bool1": true
|
||||||
|
}
|
||||||
@@ -19,4 +19,20 @@ for flag in plain spaced pretty ; do
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
|
||||||
|
# Spaced and pretty JSON string
|
||||||
|
run_output_test -o test2Formatted_spaced_pretty \
|
||||||
|
test2Formatted spaced pretty
|
||||||
|
_err2=$?
|
||||||
|
if [ $_err -eq 0 ] ; then
|
||||||
|
_err=$_err2
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Spaced and pretty JSON string using tabs
|
||||||
|
run_output_test -o test2Formatted_spaced_pretty_pretty_tab \
|
||||||
|
test2Formatted spaced pretty pretty_tab
|
||||||
|
_err2=$?
|
||||||
|
if [ $_err -eq 0 ] ; then
|
||||||
|
_err=$_err2
|
||||||
|
fi
|
||||||
|
|
||||||
exit $_err
|
exit $_err
|
||||||
|
|||||||
23
tests/test2Formatted_spaced_pretty.expected
Normal file
23
tests/test2Formatted_spaced_pretty.expected
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
new_obj.to_string()={
|
||||||
|
"glossary": {
|
||||||
|
"title": "example glossary",
|
||||||
|
"GlossDiv": {
|
||||||
|
"title": "S",
|
||||||
|
"GlossList": [
|
||||||
|
{
|
||||||
|
"ID": "SGML",
|
||||||
|
"SortAs": "SGML",
|
||||||
|
"GlossTerm": "Standard Generalized Markup Language",
|
||||||
|
"Acronym": "SGML",
|
||||||
|
"Abbrev": "ISO 8879:1986",
|
||||||
|
"GlossDef": "A meta-markup language, used to create markup languages such as DocBook.",
|
||||||
|
"GlossSeeAlso": [
|
||||||
|
"GML",
|
||||||
|
"XML",
|
||||||
|
"markup"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
23
tests/test2Formatted_spaced_pretty_pretty_tab.expected
Normal file
23
tests/test2Formatted_spaced_pretty_pretty_tab.expected
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
new_obj.to_string()={
|
||||||
|
"glossary": {
|
||||||
|
"title": "example glossary",
|
||||||
|
"GlossDiv": {
|
||||||
|
"title": "S",
|
||||||
|
"GlossList": [
|
||||||
|
{
|
||||||
|
"ID": "SGML",
|
||||||
|
"SortAs": "SGML",
|
||||||
|
"GlossTerm": "Standard Generalized Markup Language",
|
||||||
|
"Acronym": "SGML",
|
||||||
|
"Abbrev": "ISO 8879:1986",
|
||||||
|
"GlossDef": "A meta-markup language, used to create markup languages such as DocBook.",
|
||||||
|
"GlossSeeAlso": [
|
||||||
|
"GML",
|
||||||
|
"XML",
|
||||||
|
"markup"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user