Это преобразует строку JSON в case class
import org.json4s._
import org.json4s.jackson.JsonMethods._
def convertToJson[T](json: String)(implicit fmt: Formats = DefaultFormats, mf: Manifest[T]): T =
Extraction.extract(parse(json))
После того, как это будет определено, вы можете проанализировать соответствующие строки для требуемого типа:
case class Person(id: String, name: String)
case class Student(id: String, name: String, `class`: String)
val person = convertToJson[Person]("""{"name":"Jane","id":45}""")
val student = convertToJson[Student]("""{"name":"John","id":63, "class": "101"}""")
Обратите внимание, что это будетигнорировать данные JSON, которые не соответствуют полям в case class
.Если поле является необязательным в JSON, задайте его как Option
в case class
, и вы получите None
, если поля там нет.