summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/scala/spray/json/JsonPrinter.scala1
-rw-r--r--src/test/scala/spray/json/CompactPrinterSpec.scala4
2 files changed, 5 insertions, 0 deletions
diff --git a/src/main/scala/spray/json/JsonPrinter.scala b/src/main/scala/spray/json/JsonPrinter.scala
index 23529f3..258c881 100644
--- a/src/main/scala/spray/json/JsonPrinter.scala
+++ b/src/main/scala/spray/json/JsonPrinter.scala
@@ -67,6 +67,7 @@ trait JsonPrinter extends (JsValue => String) {
case '\n' => sb.append("\\n")
case '\r' => sb.append("\\r")
case '\t' => sb.append("\\t")
+ case x if x <= 0xF => sb.append("\\u000").append(Integer.toHexString(x))
case x if x <= 0xFF => sb.append("\\u00").append(Integer.toHexString(x))
case x if x <= 0xFFF => sb.append("\\u0").append(Integer.toHexString(x))
case x => sb.append("\\u").append(Integer.toHexString(x))
diff --git a/src/test/scala/spray/json/CompactPrinterSpec.scala b/src/test/scala/spray/json/CompactPrinterSpec.scala
index c00512d..5485d7d 100644
--- a/src/test/scala/spray/json/CompactPrinterSpec.scala
+++ b/src/test/scala/spray/json/CompactPrinterSpec.scala
@@ -50,6 +50,10 @@ class CompactPrinterSpec extends Specification {
}
"properly escape special chars in JsString" in {
CompactPrinter(JsString("\"\\\b\f\n\r\t\u12AB")) mustEqual """"\"\\\b\f\n\r\t""" + "\\u12ab\""
+ CompactPrinter(JsString("\u1000")) mustEqual "\"\\u1000\""
+ CompactPrinter(JsString("\u0100")) mustEqual "\"\\u0100\""
+ CompactPrinter(JsString("\u0010")) mustEqual "\"\\u0010\""
+ CompactPrinter(JsString("\u0001")) mustEqual "\"\\u0001\""
}
"properly print a simple JsObject" in (
CompactPrinter(JsObject("key" -> JsNumber(42), "key2" -> JsString("value")))