summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main/scala/spray/json/JsonParser.scala8
-rw-r--r--src/test/scala/spray/json/JsonParserSpec.scala6
2 files changed, 12 insertions, 2 deletions
diff --git a/src/main/scala/spray/json/JsonParser.scala b/src/main/scala/spray/json/JsonParser.scala
index b1e59d5..cdbedb1 100644
--- a/src/main/scala/spray/json/JsonParser.scala
+++ b/src/main/scala/spray/json/JsonParser.scala
@@ -38,10 +38,14 @@ class JsonParser(input: ParserInput) {
private[this] var cursorChar: Char = input.nextChar()
private[this] var jsValue: JsValue = _
- def parseJsValue(): JsValue = {
+ def parseJsValue(): JsValue =
+ parseJsValue(true)
+
+ def parseJsValue(requireEndOfInput: Boolean): JsValue = {
ws()
`value`()
- require(EOI)
+ if (requireEndOfInput)
+ require(EOI)
jsValue
}
diff --git a/src/test/scala/spray/json/JsonParserSpec.scala b/src/test/scala/spray/json/JsonParserSpec.scala
index 0f7ae7f..e6a6899 100644
--- a/src/test/scala/spray/json/JsonParserSpec.scala
+++ b/src/test/scala/spray/json/JsonParserSpec.scala
@@ -107,5 +107,11 @@ class JsonParserSpec extends Specification {
| ^
|""".stripMargin
}
+
+ "parse multiple values when requireEndOfInput is false" in {
+ val parser = new JsonParser("""{"key":1}{"key":2}""")
+ parser.parseJsValue(false) === JsObject("key" -> JsNumber(1))
+ parser.parseJsValue(false) === JsObject("key" -> JsNumber(2))
+ }
}
} \ No newline at end of file