Преобразование из Java-скрипта Json в Scala Json без очистки имени поля для операции обновления

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

0 ответов

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

  if ((json \ "quantity").asOpt[Int].isEmpty)
Другие вопросы по тегам