【发布时间】:2020-02-13 20:25:48
【问题描述】:
我在 Scala 中定义了以下案例类
case class BitmexTradeData(
foreignNotional: Option[Int],
grossValue: Option[Int],
homeNotional: Option[Double],
price: Double,
side: Side,
size: Double,
symbol: String,
tickDirection: String,
timestamp: Instant,
trdMatchID: String
)
现在当我得到以下我想反序列化回BitmexTradeData的json字符串时:
{
"timestamp": "2019-10-17T01:34:00.000Z",
"symbol": ".BTRXXBT",
"side": "Buy",
"size": 0,
"price": 0.00000187,
"tickDirection": "PlusTick",
"trdMatchID": "00000000-0000-0000-0000-000000000000",
"grossValue": null,
"homeNotional": null,
"foreignNotional": null
}
我收到以下错误:
spray.json.DeserializationException: Expected Int as JsNumber, but got null
我反序列化的方式如下:
msg.parseJson.convertTo[BitmexTradeData]
我期望的输出是 BitmexTradeData 对象,其中 foreignNotional 为 optional.empty,因为有时这些值为空。
【问题讨论】: