case class Student(name: String, age: Int, subjects: List[String])
import spray.json.DefaultJsonProtocol._
implicit val studentFormat = jsonFormat3(Student)
import spray.json._
val student = Student("John Doe", 20, List("Math", "Science"))
val jsonString = student.toJson.toString
val parsedJson = jsonString.parseJson
val studentObject = parsedJson.convertTo[Student]