json 到 scala 案例 class

json to scala case class

我正在尝试将下面的 json 读入 scala 案例 class。我可以使用 json4s 将大小写 class 绑定到 json。

问题是每个 table 的 expectedTypes 都会改变。它可以是更多或更少的元素数量,并且名称会有所不同。如何为此需求创建案例 class?

{
  "filepattern": "product*.gzip",
  "replaceheader": "productid,name,market",
  "dataType": [
    {
      "expectedTypes": {
        "productId": "DOUBLE",
        "name": "STRING"
      }
    }
  ]
}

case class ExpectedTypes(
  productid: String,
  name: String
)
case class DataType(
  expectedTypes: ExpectedTypes
)
case class table(
  filepattern: String,
  replaceheader: Option[String],
  dataType: List[DataType]
)

如果无法预测 expectedTypes 中有多少个字段,您可以使用 Map:

case class Root(
filepattern: String,
replaceheader: Option[String],
dataType: List[DataType]
)

case class DataType(
  expectedTypes: Map[String, String]
)