преобразование из Java-скрипта Json в Scala Json без очистки имени поля для операции обновления - PullRequest
0 голосов
/ 29 марта 2019

Я использую функцию для преобразования информации 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 на внутренний для поля количества, то я получаю:

{"id":"5aa7367"}

Есть ли способ получитьчто-то вроде {"id": "5aa7367", "количество": нет}.Количество объявлено как BigDecimal.

1 Ответ

1 голос
/ 03 июня 2019

Полагаю, ты понял это иначе, но вот мое мнение - quantity кажется возвращенным пустым для случая NaN, поэтому вы должны просто получить None?

  if ((json \ "quantity").asOpt[Int].isEmpty)
...