如何在 Scala 中使用 play.api.libs.json 库强制将数字字段解析为 Double,即使它是 Int
How to force number field to be parsed as Double even if it is Int using play.api.libs.json library in Scala
Bellow 是 Scala REPL 的片段,我如何制作一个 json 像 {"a":2.0}
?
scala> val f = 2.0
f: Double = 2.0
scala> f
res2: Double = 2.0
scala> val x = play.api.libs.json.Json.obj("a" -> f)
x: play.api.libs.json.JsObject = {"a":2}
在 Play JSON library 中,您有以下 JSON 类型:
- JsString
- JsNumber
- Js布尔值
- JsObject
- JsArray
- JsNull
对应JSON类型。
它将您的值包装成 JsNumber
类型。
如果你用同样的方式保存 val f = 2.1
你会收到
x: play.api.libs.json.JsObject = {"a":2.1}
。
JsNumbers 的行为类似于 JavaScript 数字,因此您不必担心末尾缺少零。在 JavaScript 2
和 2.0
中是相同的数字。
Bellow 是 Scala REPL 的片段,我如何制作一个 json 像 {"a":2.0}
?
scala> val f = 2.0
f: Double = 2.0
scala> f
res2: Double = 2.0
scala> val x = play.api.libs.json.Json.obj("a" -> f)
x: play.api.libs.json.JsObject = {"a":2}
在 Play JSON library 中,您有以下 JSON 类型:
- JsString
- JsNumber
- Js布尔值
- JsObject
- JsArray
- JsNull
对应JSON类型。
它将您的值包装成 JsNumber
类型。
如果你用同样的方式保存 val f = 2.1
你会收到
x: play.api.libs.json.JsObject = {"a":2.1}
。
JsNumbers 的行为类似于 JavaScript 数字,因此您不必担心末尾缺少零。在 JavaScript 2
和 2.0
中是相同的数字。