0

我使用一个函数来转换从前端发送的 json 信息:

  def convertFromJson(json: JsValue): Item = {

Item(
  (json \ "id").asOpt[String],
  (json \ "name").asOpt[String],
  (json \ "project").asOpt[String],
  (json \ "price").asOpt[scala.math.BigDecimal],
  if ((json \ "quantity").asOpt[String].contains("NaN"))
    { 
        None 
    } 
  else 
    {
        (json \ "quantity").asOpt[scala.math.BigDecimal]

    }
)

  }    

如果为数量字段输入了一个正常的数字,如 2.0,那么我将能够看到一个 json 对象,如:

{"id":"5aa7367","quantity":2}

问题是,如果我的前端将 NaN 值发送到 Quantity 字段的后端,那么我会得到:

{"id":"5aa7367"}

有没有办法得到像 {"id":"5aa7367","quantity":None} 这样的东西。数量已被声明为 BigDecimal。

4

1 回答 1

1

我想你已经知道了,但这是我的看法 -quantity对于 NaN 情况,似乎返回为空,所以你应该简单地得到None?

  if ((json \ "quantity").asOpt[Int].isEmpty)
于 2019-06-03T17:43:41.847 回答