diff options
author | Jesse Wilson <jesse@swank.ca> | 2015-07-20 11:21:23 -0700 |
---|---|---|
committer | Jesse Wilson <jesse@swank.ca> | 2015-07-20 11:21:23 -0700 |
commit | 8e570ee3a2b5dc637c0fd270e09f67e72de35f83 (patch) | |
tree | b0653b326c48bd0f621da6217535a8d722488f33 | |
parent | bb34247cc4283b91ed657238a37744eaa1b0f3e9 (diff) | |
parent | f7abd59a3b349d5c926507705f439afff54ed301 (diff) | |
download | android_external_gson-8e570ee3a2b5dc637c0fd270e09f67e72de35f83.tar.gz android_external_gson-8e570ee3a2b5dc637c0fd270e09f67e72de35f83.tar.bz2 android_external_gson-8e570ee3a2b5dc637c0fd270e09f67e72de35f83.zip |
Merge pull request #667 from adamtanner/json-writer-opaque-value
JsonWriter#value supports opaque JSON values.
-rw-r--r-- | gson/src/main/java/com/google/gson/stream/JsonWriter.java | 17 | ||||
-rw-r--r-- | gson/src/test/java/com/google/gson/stream/JsonWriterTest.java | 12 |
2 files changed, 29 insertions, 0 deletions
diff --git a/gson/src/main/java/com/google/gson/stream/JsonWriter.java b/gson/src/main/java/com/google/gson/stream/JsonWriter.java index 6a935ddb..839295d4 100644 --- a/gson/src/main/java/com/google/gson/stream/JsonWriter.java +++ b/gson/src/main/java/com/google/gson/stream/JsonWriter.java @@ -421,6 +421,23 @@ public class JsonWriter implements Closeable, Flushable { } /** + * Writes {@code value} directly to the writer without quoting or + * escaping. + * + * @param value the literal string value, or null to encode a null literal. + * @return this writer. + */ + public JsonWriter jsonValue(String value) throws IOException { + if (value == null) { + return nullValue(); + } + writeDeferredName(); + beforeValue(false); + out.append(value); + return this; + } + + /** * Encodes {@code null}. * * @return this writer. diff --git a/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java b/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java index 24a1b703..4cfd55a7 100644 --- a/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java +++ b/gson/src/test/java/com/google/gson/stream/JsonWriterTest.java @@ -126,6 +126,18 @@ public final class JsonWriterTest extends TestCase { assertEquals("{\"a\":null}", stringWriter.toString()); } + public void testJsonValue() throws IOException { + StringWriter stringWriter = new StringWriter(); + JsonWriter jsonWriter = new JsonWriter(stringWriter); + jsonWriter.beginObject(); + jsonWriter.name("a"); + jsonWriter.jsonValue("{\"b\":true}"); + jsonWriter.name("c"); + jsonWriter.value(1); + jsonWriter.endObject(); + assertEquals("{\"a\":{\"b\":true},\"c\":1}", stringWriter.toString()); + } + public void testNonFiniteDoubles() throws IOException { StringWriter stringWriter = new StringWriter(); JsonWriter jsonWriter = new JsonWriter(stringWriter); |