【问题标题】:Creating JSObject with JsArray from List[Long]使用 List[Long] 中的 JsArray 创建 JSObject
【发布时间】:2017-03-09 07:17:03
【问题描述】:

我需要使用 List[Long] 中的 JsArray 创建一个 JsObject。我虽然有一个东西叫JsLong

def someWork(someList: List[Long]): JsObject = {
  JsObject(("someField", JsArray(someList.map(JsLong))) :: Nil)
}

显然没有。有什么建议我可以创建它吗?

【问题讨论】:

  • JSON 没有整数类型,这就是为什么您通常也不会在 JSON 框架中找到它的原因。

标签: scala


【解决方案1】:

JavaScript/JSON 中只有一种数字类型,那就是 Number。看起来您正在使用 Play-JSON,它具有 JsNumber,可以使用 BigDecimal 构造。 (只需将Long 转换为BigDecimal)。

import play.api.libs.json._

def someWork(someList: List[Long]): JsObject = {
  Json.obj(
    "someField" -> JsArray(someList.map(a => JsNumber.apply(BigDecimal(a))))
  )
}

scala> someWork(List(1, 2, 3, 4))
res0: play.api.libs.json.JsObject = {"someField":[1,2,3,4]}

【讨论】:

    猜你喜欢
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 2018-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-17
    相关资源
    最近更新 更多