ScalaJson没有整数类型?

时间:2014-11-12 08:28:10

标签: json scala playframework

我正在尝试使用Scala& amp;编写JSON API。玩框架。我的应用程序需要以JSON格式响应请求,将产品列表转换为JSON

我正在我的Product类上实现一个writes方法,该方法将字段转换为JSON。需要使用JsString

等方法将每个值转换为js

这是'tis

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

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

[error]  found   : Integer
[error]  required: BigDecimal

但是当我咨询the documentation时,整数似乎没有类型。

那么我应该如何在JSON中处理像id这样的字段?

1 个答案:

答案 0 :(得分:5)

JSON不区分整数和浮点类型,这就是为什么您只在文档中看到JsNumber(value: BigDecimal)方法的原因。您必须先使用BigDecimal对象将Integer转换为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)
  ))
}