Skip to content

Commit fd0a399

Browse files
Mathieu Hubbardmhubbard
authored andcommitted
json empty string now maps to <element></element>, json null now maps to <element/> and <element>null</element> now maps to the string "null"
1 parent 5ff8b4c commit fd0a399

1 file changed

Lines changed: 15 additions & 5 deletions

File tree

XML.java

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -378,7 +378,7 @@ private static boolean parse(XMLTokener x, JSONObject context, String name, bool
378378
if (jsonobject.length() > 0) {
379379
context.accumulate(tagName, jsonobject);
380380
} else {
381-
context.accumulate(tagName, "");
381+
context.accumulate(tagName, JSONObject.NULL);
382382
}
383383
return false;
384384

@@ -533,8 +533,8 @@ public static String toString(Object object, String tagName)
533533
while (keys.hasNext()) {
534534
key = keys.next();
535535
value = jo.opt(key);
536-
if (value == null) {
537-
value = "";
536+
if (JSONObject.NULL.equals(value)) {
537+
value = null;
538538
} else if (value.getClass().isArray()) {
539539
value = new JSONArray(value);
540540
}
@@ -553,7 +553,7 @@ public static String toString(Object object, String tagName)
553553
i++;
554554
}
555555
} else {
556-
sb.append(escape(value.toString()));
556+
sb.append(escape(String.valueOf(value)));
557557
}
558558

559559
// Emit an array of similar keys
@@ -576,10 +576,20 @@ public static String toString(Object object, String tagName)
576576
} else if ("".equals(value)) {
577577
sb.append('<');
578578
sb.append(key);
579-
sb.append("/>");
579+
sb.append('>');
580+
sb.append("</");
581+
sb.append(key);
582+
sb.append('>');
580583

581584
// Emit a new tag <k>
582585

586+
} else if (value == null) {
587+
sb.append('<');
588+
sb.append(key);
589+
sb.append("/>");
590+
591+
// Emit a new empty tag <k/>
592+
583593
} else {
584594
sb.append(toString(value, key));
585595
}

0 commit comments

Comments
 (0)