From fd0a3992f29924e70461d1b7133d1d5ade9b43e0 Mon Sep 17 00:00:00 2001 From: Mathieu Hubbard Date: Fri, 17 Feb 2017 11:06:01 -0500 Subject: [PATCH] json empty string now maps to , json null now maps to and null now maps to the string "null" --- XML.java | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) diff --git a/XML.java b/XML.java index 78dd6a00c..4e0be2461 100644 --- a/XML.java +++ b/XML.java @@ -378,7 +378,7 @@ private static boolean parse(XMLTokener x, JSONObject context, String name, bool if (jsonobject.length() > 0) { context.accumulate(tagName, jsonobject); } else { - context.accumulate(tagName, ""); + context.accumulate(tagName, JSONObject.NULL); } return false; @@ -533,8 +533,8 @@ public static String toString(Object object, String tagName) while (keys.hasNext()) { key = keys.next(); value = jo.opt(key); - if (value == null) { - value = ""; + if (JSONObject.NULL.equals(value)) { + value = null; } else if (value.getClass().isArray()) { value = new JSONArray(value); } @@ -553,7 +553,7 @@ public static String toString(Object object, String tagName) i++; } } else { - sb.append(escape(value.toString())); + sb.append(escape(String.valueOf(value))); } // Emit an array of similar keys @@ -576,10 +576,20 @@ public static String toString(Object object, String tagName) } else if ("".equals(value)) { sb.append('<'); sb.append(key); - sb.append("/>"); + sb.append('>'); + sb.append("'); // Emit a new tag + } else if (value == null) { + sb.append('<'); + sb.append(key); + sb.append("/>"); + + // Emit a new empty tag + } else { sb.append(toString(value, key)); }