Я использую json-lift, совместимый со scala 2.10, из lift-json, но мне не кажется чтобы иметь доступ к методу извлечения. как этот пример:
import net.liftweb.json._
object testobject {
case class process(process_id:Int,job_id:Int ,command:String, exception:String)
def main(args: Array[String]) {
val json = parse("""
{
"process_id": "2",
"job_id": "540",
"command": "update",
"exception": "0"
}
""")
json.extract[process] // produces an error
}
}
теперь у класса есть динамический синтаксический анализ, например, следующее не выдает никаких ошибок (сладкий):
json.process_id // will produce JString(2)
два моих вопроса:
- Как я могу сопоставить объект json с моим классом case
- Как преобразовать JString в обычную строку.
Обновление: добрые люди из lift создали обновление для scala 2.10.0... так что вы можете просто загрузить его с их. Нет необходимости в какой-либо работе вокруг.
import net.liftweb.json._
object testobject {
case class process(process_id:Int,job_id:Int ,command:String, exception:String)
def main(args: Array[String]) {
val json = parse("""
{
"process_id": "2",
"job_id": "540",
"command": "update",
"exception": "0"
}
""")
val p = json.extract[process] // maps the json object to the process case class
println(p.job_id) // will print 540
}
}