json4s позволяет пользователю конвертировать объект JsonAST в класс case, используя extract
.
import org.json4s._
import org.json4s.jackson.JsonMethods._
implicit val formats = DefaultFormats
case class Item(name: String, price: Double)
val json = parse("""{"name": "phone", "price": 1000.0}""") // JObject(List((name,JString(phone)), (price,JDouble(1000.0))))
val item = json.extract[Item] // Item(phone,1000.0)
Однако, чтобы преобразовать класс case в объект JsonAST, я могу думать только о следующем:
- сериализовать класс case, используя
write
- десериализация строки с использованием
extract
Как показано ниже:
parse(write(item)) // JObject(List((name,JString(phone)), (price,JDouble(1000.0))))
Есть ли лучший способ для преобразования? Спасибо!