diff options
author | Mathias <mathias@spray.cc> | 2012-01-17 17:22:43 +0100 |
---|---|---|
committer | Mathias <mathias@spray.cc> | 2012-01-19 17:43:33 +0100 |
commit | cfbc301ecaaac325d3a1ad87305107d2cc785b7d (patch) | |
tree | e6ad4b88b94d6d6538835d76a0801425d6d164f7 /src | |
parent | ae6bfb608e007f7d652383e618b9c6af7b726fc7 (diff) | |
download | spray-json-cfbc301ecaaac325d3a1ad87305107d2cc785b7d.tar.gz spray-json-cfbc301ecaaac325d3a1ad87305107d2cc785b7d.tar.bz2 spray-json-cfbc301ecaaac325d3a1ad87305107d2cc785b7d.zip |
Pimp Strings with 'asJson'
Diffstat (limited to 'src')
4 files changed, 10 insertions, 6 deletions
diff --git a/src/main/scala/cc/spray/json/package.scala b/src/main/scala/cc/spray/json/package.scala index 1bc592f..ec12939 100644 --- a/src/main/scala/cc/spray/json/package.scala +++ b/src/main/scala/cc/spray/json/package.scala @@ -26,8 +26,8 @@ package object json { def jsonReader[T](implicit reader: JsonReader[T]) = reader def jsonWriter[T](implicit writer: JsonWriter[T]) = writer - implicit def pimpAny[T](any: T): PimpedAny[T] = new PimpedAny(any) - + implicit def pimpAny[T](any: T) = new PimpedAny(any) + implicit def pimpString(string: String) = new PimpedString(string) } package json { @@ -38,4 +38,8 @@ package json { private[json] class PimpedAny[T](any: T) { def toJson(implicit writer: JsonWriter[T]): JsValue = writer.write(any) } + + private[json] class PimpedString(string: String) { + def asJson: JsValue = JsonParser(string) + } }
\ No newline at end of file diff --git a/src/test/scala/cc/spray/json/AdditionalFormatsSpec.scala b/src/test/scala/cc/spray/json/AdditionalFormatsSpec.scala index 217ae4a..f25c9d8 100644 --- a/src/test/scala/cc/spray/json/AdditionalFormatsSpec.scala +++ b/src/test/scala/cc/spray/json/AdditionalFormatsSpec.scala @@ -51,7 +51,7 @@ class AdditionalFormatsSpec extends Specification { "properly read a Container[Container[List[Int]]] from JSON" in { import ReaderProtocol._ - JsonParser("""{"content":{"content":[1,2,3]}}""").convertTo[Container[Container[List[Int]]]] mustEqual obj + """{"content":{"content":[1,2,3]}}""".asJson.convertTo[Container[Container[List[Int]]]] mustEqual obj } } diff --git a/src/test/scala/cc/spray/json/CustomFormatSpec.scala b/src/test/scala/cc/spray/json/CustomFormatSpec.scala index 237e3f4..e8feb59 100644 --- a/src/test/scala/cc/spray/json/CustomFormatSpec.scala +++ b/src/test/scala/cc/spray/json/CustomFormatSpec.scala @@ -35,7 +35,7 @@ class CustomFormatSpec extends Specification with DefaultJsonProtocol { "A custom JsonFormat built with 'asJsonObject'" should { val value = MyType("bob", 42) "correctly deserialize valid JSON content" in { - JsonParser("""{ "name": "bob", "value": 42 }""").convertTo[MyType] mustEqual value + """{ "name": "bob", "value": 42 }""".asJson.convertTo[MyType] mustEqual value } "support full round-trip (de)serialization" in { value.toJson.convertTo[MyType] mustEqual value diff --git a/src/test/scala/cc/spray/json/ReadmeSpec.scala b/src/test/scala/cc/spray/json/ReadmeSpec.scala index 7e1d246..d60aa69 100644 --- a/src/test/scala/cc/spray/json/ReadmeSpec.scala +++ b/src/test/scala/cc/spray/json/ReadmeSpec.scala @@ -24,8 +24,8 @@ class ReadmeSpec extends Specification { "behave as expected" in { import DefaultJsonProtocol._ - val json = """{ "some": "JSON source" }""" - val jsonAst = JsonParser(json) + val source = """{ "some": "JSON source" }""" + val jsonAst = source.asJson jsonAst mustEqual JsObject("some" -> JsString("JSON source")) val json2 = PrettyPrinter(jsonAst) |