ScalaJson没有整数类型?

Mar*_*ins 2 json scala playframework

我正在尝试使用Scala和Play Framework编写JSON API.我的应用程序需要以JSON格式响应请求,将产品列表转换为JSON

我正在writes我的Product类上实现一个方法,它将字段转换为JSON.每个值都需要使用类似的方法转换为jsJsString

这是

  def writes(product: Product) = {
    JsObject(Seq(
      "id" -> JsNumber(product.id),
      "title" -> JsString(product.title),
      "description" -> JsString(product.description),
      "available_online" -> JsBoolean(product.available_online)
    ))
  }
Run Code Online (Sandbox Code Playgroud)

由于类型不匹配,此代码在第三行中失败

[error]  found   : Integer
[error]  required: BigDecimal
Run Code Online (Sandbox Code Playgroud)

但是当我查阅文档时,似乎没有整数的类型.

那么我应该如何处理像idJSON 这样的字段呢?

Rob*_*sen 5

JSON不区分整数和浮点类型,这就是为什么你只看到JsNumber(value: BigDecimal)文档中的方法.您必须使用该对象将您转换IntegerBigDecimal第一个BigDecimal:

def writes(product: Product) = {
  JsObject(Seq(
    "id" -> JsNumber(BigDecimal(product.id)),
    "title" -> JsString(product.title),
    "description" -> JsString(product.description),
    "available_online" -> JsBoolean(product.available_online)
  ))
}
Run Code Online (Sandbox Code Playgroud)