Преобразование из 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)