json до scala класс корпуса - PullRequest
0 голосов
/ 12 апреля 2020

Я пытаюсь прочитать приведенный ниже json в scala case case. Я могу связать класс case с json, используя json4s.

Проблема в том, что ожидаемые типы будут меняться для каждой таблицы. Количество элементов может быть больше или меньше, а имя будет другим. Как создать класс дел для этого требования?

{
  "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]
)

1 Ответ

2 голосов
/ 12 апреля 2020

Если вы не можете предсказать, сколько полей у вас будет в expectedTypes, вы можете использовать Map:

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

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