diff options
-rw-r--r-- | src/main/scala/spray/json/JsonParser.scala | 8 | ||||
-rw-r--r-- | src/test/scala/spray/json/JsonParserSpec.scala | 6 |
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 |