diff options
author | Steffen Fritzsche <steffen.fritzsche@uni-ulm.de> | 2011-10-11 18:18:26 +0200 |
---|---|---|
committer | Steffen Fritzsche <steffen.fritzsche@uni-ulm.de> | 2011-10-11 18:18:26 +0200 |
commit | 211e72c22cf620c12835738b2a62c50867331fa6 (patch) | |
tree | 37256c1038104346afc2456a069ecb7de2047925 /src/main/scala | |
parent | 2e7e3e955a56ccb5fa9382a42f61de29a31709cd (diff) | |
download | spray-json-211e72c22cf620c12835738b2a62c50867331fa6.tar.gz spray-json-211e72c22cf620c12835738b2a62c50867331fa6.tar.bz2 spray-json-211e72c22cf620c12835738b2a62c50867331fa6.zip |
Implemented #8: Conversion of Double.NaN and Infinity to JsNull
Diffstat (limited to 'src/main/scala')
-rw-r--r-- | src/main/scala/cc/spray/json/JsValue.scala | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/main/scala/cc/spray/json/JsValue.scala b/src/main/scala/cc/spray/json/JsValue.scala index 86dbb06..e4ab734 100644 --- a/src/main/scala/cc/spray/json/JsValue.scala +++ b/src/main/scala/cc/spray/json/JsValue.scala @@ -110,7 +110,11 @@ case class JsNumber(value: BigDecimal) extends JsValue object JsNumber { def apply(n: Int) = new JsNumber(BigDecimal(n)) def apply(n: Long) = new JsNumber(BigDecimal(n)) - def apply(n: Double) = new JsNumber(BigDecimal(n)) + def apply(n: Double) = n match { + case n if n.isNaN => JsNull + case n if n.isInfinity => JsNull + case _ => new JsNumber(BigDecimal(n)) + } def apply(n: BigInt) = new JsNumber(BigDecimal(n)) def apply(n: String) = new JsNumber(BigDecimal(n)) } @@ -135,4 +139,4 @@ case object JsFalse extends JsBoolean { /** * The representation for JSON null. */ -case object JsNull extends JsValue
\ No newline at end of file +case object JsNull extends JsValue |