Spray JSON - 反序列化可能具有不同值的字段

Spray JSON - deserialize field that may have different values

我在解析 JSON 时遇到一个问题,它的字段可能是数组或单个对象。如果酒店有多个房间,则返回典型的 JsArray。但是,如果它只有一种类型的房间,它 returns 只有一个对象。

我正在尝试使用案例 类 来解析这种情况,尤其是针对这种情况的 List[Room]。但是,如果仅返回一个对象,则此操作失败。有没有办法用 case 类 来克服这个问题?如果不是,这个问题的解决方案是什么?

非常感谢。

您可以使用 Either[A,B],Either 可以包含 A 的实例或 B 的实例

case class Hotel(data: Either[Room, List[Room]])