我正在尝试使用Scala& amp;编写JSON API。玩框架。我的应用程序需要以JSON格式响应请求,将产品列表转换为JSON
我正在我的Product类上实现一个writes
方法,该方法将字段转换为JSON。需要使用JsString
这是'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
这样的字段?
答案 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)
))
}