Skip to content

Commit dd8dad4

Browse files
authored
Better JSON output formatting and testing (#35)
1 parent 02d5796 commit dd8dad4

File tree

2 files changed

+8
-16
lines changed

2 files changed

+8
-16
lines changed

src/main/org/hjson/JsonWriter.java

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@ public void save(JsonValue value, Writer tw, int level) throws IOException {
4646
switch (value.getType()) {
4747
case OBJECT:
4848
JsonObject obj=value.asObject();
49-
if (obj.size()>0) nl(tw, level);
5049
tw.write('{');
5150
for (JsonObject.Member pair : obj) {
5251
if (following) tw.write(",");
@@ -56,8 +55,7 @@ public void save(JsonValue value, Writer tw, int level) throws IOException {
5655
tw.write("\":");
5756
//save(, tw, level+1, " ", false);
5857
JsonValue v=pair.getValue();
59-
JsonType vType=v.getType();
60-
if (format && vType!=JsonType.ARRAY && vType!=JsonType.OBJECT) tw.write(" ");
58+
if (format) tw.write(" ");
6159
if (v==null) tw.write("null");
6260
else save(v, tw, level+1);
6361
following=true;
@@ -68,17 +66,14 @@ public void save(JsonValue value, Writer tw, int level) throws IOException {
6866
case ARRAY:
6967
JsonArray arr=value.asArray();
7068
int n=arr.size();
71-
if (n>0) nl(tw, level);
7269
tw.write('[');
7370
for (int i=0; i<n; i++) {
74-
if (following) tw.write(",");
71+
if (i > 0) tw.write(",");
7572
JsonValue v=arr.get(i);
76-
JsonType vType=v.getType();
77-
if (vType!=JsonType.ARRAY && vType!=JsonType.OBJECT) nl(tw, level+1);
78-
save(v, tw, level+1);
79-
following=true;
73+
nl(tw, level+1);
74+
save(arr.get(i), tw, level+1);
8075
}
81-
if (following) nl(tw, level);
76+
if (n > 0) nl(tw, level);
8277
tw.write(']');
8378
break;
8479
case BOOLEAN:

src/test/org/hjson/test/Main.java

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,16 +43,13 @@ private static boolean test(String name, String file, boolean inputCr, boolean o
4343
String data1=data.toString(Stringify.FORMATTED);
4444
String hjson1=data.toString(Stringify.HJSON);
4545
if (!shouldFail) {
46-
JsonValue result=JsonValue.readJSON(load(name+"_result.json", inputCr));
46+
String json2 = load(name+"_result.json", outputCr);
47+
JsonValue result=JsonValue.readJSON(json2);
4748
String data2=result.toString(Stringify.FORMATTED);
4849
String hjson2=load(name+"_result.hjson", outputCr);
4950
if (!data1.equals(data2)) return failErr(name, "parse", data1, data2);
5051
if (!hjson1.equals(hjson2)) return failErr(name, "stringify", hjson1, hjson2);
51-
52-
if (isJson) {
53-
String json1=data.toString(), json2=JsonValue.readHjson(text, opt).toString();
54-
if (!json1.equals(json2)) return failErr(name, "json chk", json1, json2);
55-
}
52+
if (!data1.equals(json2)) return failErr(name, "JSON stringify", data1, json2);
5653
}
5754
else return failErr(name, "should fail", null, null);
5855
}

0 commit comments

Comments
 (0)