diff --git a/gson/src/main/java/com/google/gson/Gson.java b/gson/src/main/java/com/google/gson/Gson.java index 2fca11eb..2237bd12 100644 --- a/gson/src/main/java/com/google/gson/Gson.java +++ b/gson/src/main/java/com/google/gson/Gson.java @@ -574,7 +574,7 @@ public final class Gson { boolean oldSerializeNulls = writer.getSerializeNulls(); writer.setSerializeNulls(serializeNulls); try { - Streams.write(jsonElement, serializeNulls, writer); + Streams.write(jsonElement, writer); } catch (IOException e) { throw new JsonIOException(e); } finally { diff --git a/gson/src/main/java/com/google/gson/GsonToMiniGsonTypeAdapterFactory.java b/gson/src/main/java/com/google/gson/GsonToMiniGsonTypeAdapterFactory.java index 69d383e5..1b700027 100644 --- a/gson/src/main/java/com/google/gson/GsonToMiniGsonTypeAdapterFactory.java +++ b/gson/src/main/java/com/google/gson/GsonToMiniGsonTypeAdapterFactory.java @@ -98,7 +98,7 @@ final class GsonToMiniGsonTypeAdapterFactory implements TypeAdapter.Factory { return; } JsonElement element = serializer.serialize(value, type, serializationContext); - Streams.write(element, serializeNulls, writer); + Streams.write(element, writer); } private TypeAdapter delegate() { diff --git a/gson/src/main/java/com/google/gson/JsonElement.java b/gson/src/main/java/com/google/gson/JsonElement.java index 0a909c7b..7e5ef2d1 100644 --- a/gson/src/main/java/com/google/gson/JsonElement.java +++ b/gson/src/main/java/com/google/gson/JsonElement.java @@ -333,7 +333,7 @@ public abstract class JsonElement { StringWriter stringWriter = new StringWriter(); JsonWriter jsonWriter = new JsonWriter(stringWriter); jsonWriter.setLenient(true); - Streams.write(this, true, jsonWriter); + Streams.write(this, jsonWriter); return stringWriter.toString(); } catch (IOException e) { throw new AssertionError(e); diff --git a/gson/src/main/java/com/google/gson/internal/Streams.java b/gson/src/main/java/com/google/gson/internal/Streams.java index ea59cc56..9a558fb6 100644 --- a/gson/src/main/java/com/google/gson/internal/Streams.java +++ b/gson/src/main/java/com/google/gson/internal/Streams.java @@ -104,13 +104,10 @@ public final class Streams { /** * Writes the JSON element to the writer, recursively. */ - public static void write(JsonElement element, boolean serializeNulls, JsonWriter writer) + public static void write(JsonElement element, JsonWriter writer) throws IOException { if (element == null || element.isJsonNull()) { - if (serializeNulls) { - writer.nullValue(); - } - + writer.nullValue(); } else if (element.isJsonPrimitive()) { JsonPrimitive primitive = element.getAsJsonPrimitive(); if (primitive.isNumber()) { @@ -129,7 +126,7 @@ public final class Streams { writer.nullValue(); continue; } - write(e, serializeNulls, writer); + write(e, writer); } writer.endArray(); @@ -137,11 +134,8 @@ public final class Streams { writer.beginObject(); for (Map.Entry e : element.getAsJsonObject().entrySet()) { JsonElement value = e.getValue(); - if (!serializeNulls && value.isJsonNull()) { - continue; - } writer.name(e.getKey()); - write(value, serializeNulls, writer); + write(value, writer); } writer.endObject(); diff --git a/gson/src/main/java/com/google/gson/internal/bind/MapTypeAdapterFactory.java b/gson/src/main/java/com/google/gson/internal/bind/MapTypeAdapterFactory.java index fdc31508..29be2925 100644 --- a/gson/src/main/java/com/google/gson/internal/bind/MapTypeAdapterFactory.java +++ b/gson/src/main/java/com/google/gson/internal/bind/MapTypeAdapterFactory.java @@ -134,7 +134,7 @@ public final class MapTypeAdapterFactory implements TypeAdapter.Factory { private final TypeAdapter valueTypeAdapter; private final ObjectConstructor> constructor; - public Adapter(MiniGson context, Type keyType, TypeAdapter keyTypeAdapter, + public Adapter(MiniGson context, Type keyType, TypeAdapter keyTypeAdapter, Type valueType, TypeAdapter valueTypeAdapter, ObjectConstructor> constructor) { this.keyTypeAdapter = @@ -203,7 +203,7 @@ public final class MapTypeAdapterFactory implements TypeAdapter.Factory { writer.beginArray(); for (int i = 0; i < keys.size(); i++) { writer.beginArray(); // entry array - Streams.write(keys.get(i), true, writer); + Streams.write(keys.get(i), writer); valueTypeAdapter.write(writer, values.get(i)); writer.endArray(); } diff --git a/gson/src/test/java/com/google/gson/MixedStreamTest.java b/gson/src/test/java/com/google/gson/MixedStreamTest.java index dbd86792..985df2e4 100644 --- a/gson/src/test/java/com/google/gson/MixedStreamTest.java +++ b/gson/src/test/java/com/google/gson/MixedStreamTest.java @@ -163,7 +163,7 @@ public final class MixedStreamTest extends TestCase { StringWriter stringWriter = new StringWriter(); gson.toJson(null, new JsonWriter(stringWriter)); - assertEquals("", stringWriter.toString()); + assertEquals("null", stringWriter.toString()); } public void testReadNulls() { diff --git a/gson/src/test/java/com/google/gson/functional/ObjectTest.java b/gson/src/test/java/com/google/gson/functional/ObjectTest.java index 327ae0b9..0d91ac58 100644 --- a/gson/src/test/java/com/google/gson/functional/ObjectTest.java +++ b/gson/src/test/java/com/google/gson/functional/ObjectTest.java @@ -139,7 +139,7 @@ public class ObjectTest extends TestCase { assertEquals(json, target.getExpectedJson()); } public void testNullSerialization() throws Exception { - assertEquals("", gson.toJson(null)); + assertEquals("null", gson.toJson(null)); } public void testEmptyStringDeserialization() throws Exception { diff --git a/gson/src/test/java/com/google/gson/functional/ReadersWritersTest.java b/gson/src/test/java/com/google/gson/functional/ReadersWritersTest.java index 95b90ef6..95782878 100644 --- a/gson/src/test/java/com/google/gson/functional/ReadersWritersTest.java +++ b/gson/src/test/java/com/google/gson/functional/ReadersWritersTest.java @@ -62,7 +62,7 @@ public class ReadersWritersTest extends TestCase { public void testTopLevelNullObjectSerializationWithWriter() { StringWriter writer = new StringWriter(); gson.toJson(null, writer); - assertEquals("", writer.toString()); + assertEquals("null", writer.toString()); } public void testTopLevelNullObjectDeserializationWithReader() { @@ -84,7 +84,7 @@ public class ReadersWritersTest extends TestCase { Integer nullIntObject = gson.fromJson(reader, Integer.class); assertNull(nullIntObject); } - + public void testReadWriteTwoStrings() throws IOException { Gson gson= new Gson(); CharArrayWriter writer= new CharArrayWriter(); @@ -97,7 +97,7 @@ public class ReadersWritersTest extends TestCase { String actualTwo = gson.fromJson(parser.next(), String.class); assertEquals("two", actualTwo); } - + public void testReadWriteTwoObjects() throws IOException { Gson gson= new Gson(); CharArrayWriter writer= new CharArrayWriter();