【发布时间】:2019-06-03 05:48:57
【问题描述】:
我正在尝试将以下 JSON 表示为 Scala 案例类:
{
"cars": {
"THIS IS A DYNAMIC KEY 1": {
"name": "bla 1",
},
"THIS IS A DYNAMIC KEY 2": {
"name": "bla 2",
}
...
}
但是,我的 JSON 具有我在运行时不知道的动态键,我想使用 circe 进行编码/解码。我正在使用正确的方式来使用 Scala 来表示它?
import io.circe.generic.JsonCodec
@JsonCodec
case class Cars(cars: List[Car])
@JsonCodec
case class Car(whatShouldThisBe: CarDetails) // Not sure how to represent this?
@JsonCodec
case class CarDetails(name: String)
【问题讨论】:
-
如何“动态”是关键?来自一组/有限的可能性列表或“任何有效字符串”?如果是前者,您可以使用
sealed trait和几个实现。如果是后者,则将Car建模为一个元组或将Cars作为一个整体建模为Map。 -
谢谢,密钥可以是任何有效的字符串