我试图将以下JSON表示为Scala案例类:
{
"cars": {
"THIS IS A DYNAMIC KEY 1": {
"name": "bla 1",
},
"THIS IS A DYNAMIC KEY 2": {
"name": "bla 2",
}
...
}
Run Code Online (Sandbox Code Playgroud)
但是,我的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)
Run Code Online (Sandbox Code Playgroud)
我想你可以用一个Map[String, CarDetails].你的ADT然后变成:
import io.circe.generic.JsonCodec
@JsonCodec
case class Cars(cars: Map[String, CarDetails])
@JsonCodec
case class CarDetails(name: String)
Run Code Online (Sandbox Code Playgroud)
唯一棘手的问题可能是,如果您需要至少有一个CarDetails对象,或者零是可接受的.如果需要,Circe似乎确实支持cats.data.NonEmptyMap.
| 归档时间: |
|
| 查看次数: |
262 次 |
| 最近记录: |