MCPcopy
hub / github.com/google/gson / write

Method write

src/main/java/com/google/gson/Streams.java:99–143  ·  view source on GitHub ↗

Writes the JSON element to the writer, recursively.

(JsonElement element, boolean serializeNulls, JsonWriter writer)

Source from the content-addressed store, hash-verified

97 * Writes the JSON element to the writer, recursively.
98 */
99 static void write(JsonElement element, boolean serializeNulls, JsonWriter writer)
100 throws IOException {
101 if (element == null || element.isJsonNull()) {
102 if (serializeNulls) {
103 writer.nullValue();
104 }
105
106 } else if (element.isJsonPrimitive()) {
107 JsonPrimitive primitive = element.getAsJsonPrimitive();
108 if (primitive.isNumber()) {
109 writer.value(primitive.getAsNumber());
110 } else if (primitive.isBoolean()) {
111 writer.value(primitive.getAsBoolean());
112 } else {
113 writer.value(primitive.getAsString());
114 }
115
116 } else if (element.isJsonArray()) {
117 writer.beginArray();
118 for (JsonElement e : element.getAsJsonArray()) {
119 /* always print null when its parent element is an array! */
120 if (e.isJsonNull()) {
121 writer.nullValue();
122 continue;
123 }
124 write(e, serializeNulls, writer);
125 }
126 writer.endArray();
127
128 } else if (element.isJsonObject()) {
129 writer.beginObject();
130 for (Map.Entry<String, JsonElement> e : element.getAsJsonObject().entrySet()) {
131 JsonElement value = e.getValue();
132 if (!serializeNulls && value.isJsonNull()) {
133 continue;
134 }
135 writer.name(e.getKey());
136 write(value, serializeNulls, writer);
137 }
138 writer.endObject();
139
140 } else {
141 throw new IllegalArgumentException("Couldn't write " + element.getClass());
142 }
143 }
144
145 static Writer writerForAppendable(Appendable appendable) {
146 return appendable instanceof Writer ? (Writer) appendable : new AppendableWriter(appendable);

Callers 1

toJsonMethod · 0.95

Calls 15

isJsonNullMethod · 0.95
isNumberMethod · 0.95
getAsNumberMethod · 0.95
isBooleanMethod · 0.95
getAsBooleanMethod · 0.95
getAsStringMethod · 0.95
nullValueMethod · 0.80
isJsonPrimitiveMethod · 0.80
valueMethod · 0.80
isJsonArrayMethod · 0.80
isJsonObjectMethod · 0.80
entrySetMethod · 0.80

Tested by

no test coverage detected