Scala 2.12 здесь. Я пытаюсь использовать Lift-JSON для десериализации некоторого JSON в объект Scala, и у меня возникают проблемы с навигацией по Lift API. Обратите внимание: я не женат на Lift-JSON , будет принято любое другое рабочее решение, если мне не нужно вносить какие-либо тяжелые / основные зависимости Play в мой проект.
Вот файл JSON, который я пытаюсь прочитать:
{
"fizz" : "buzz",
"foo" : [
"123",
"456",
"789"
],
"bar" : {
"whistle" : 1,
"feather" : true
}
}
Вот моя иерархия объектов Scala:
case class Bar(whistle : Integer, feather : Boolean)
case class MyConfig(fizz : String, foo : Array[String], bar : Bar)
И, наконец, моя лучшая попытка создать код для этого:
def loadConfig(configFilePath : String) : MyConfig = {
val configJson = Source.fromFile(configFilePath)
val parsedJson = parse(configJson.mkString)
MyConfig(???)
}
Мне нужна проверка на месте, чтобы, если JSON не действителен, генерировалось исключение. Любые идеи, как я могу извлечь поля из parsedJson
и использовать их для установки значений для моего MyConfig
экземпляра? А как выполнить проверку?