aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Wilson <jesse@swank.ca>2015-07-20 11:21:23 -0700
committerJesse Wilson <jesse@swank.ca>2015-07-20 11:21:23 -0700
commit8e570ee3a2b5dc637c0fd270e09f67e72de35f83 (patch)
treeb0653b326c48bd0f621da6217535a8d722488f33
parentbb34247cc4283b91ed657238a37744eaa1b0f3e9 (diff)
parentf7abd59a3b349d5c926507705f439afff54ed301 (diff)
downloadandroid_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.java17
-rw-r--r--gson/src/test/java/com/google/gson/stream/JsonWriterTest.java12
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);