json提升提取方法不可访问

json提升提取方法不可访问,json,parsing,scala,lift-json,Json,Parsing,Scala,Lift Json,我使用的json lift与中的scala 2.10兼容,但我似乎没有访问extract方法的权限。像这个例子: 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(""" {

我使用的json lift与中的scala 2.10兼容,但我似乎没有访问extract方法的权限。像这个例子:

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


 }

}
现在该类具有动态解析,例如,以下内容不会产生任何错误(sweet):

我的两个问题是:

  • 如何将json对象映射到案例类
  • 如何将JString转换为常规字符串
  • 更新: 公司的优秀员工已经为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
    
    
    
     }
    
    }
    

    我向您展示了获取正确字符串的方法,希望能帮助您:

    假设有一个包含x和y值的元组列表

    val dataSet:List[(Int,Int)] = new List((0,1),(1,3),(2,6))
    
    我制作我的JObject(
    net.liftweb.json.JsonAST.JObject
    ):

    然后我得到如下字符串:

    val jsonString:String = compact(render(jsonTmp))
    
    compact(d:Document):String
    &
    render(value:JValue):Document
    来自json包

    这是结果字符串(三重引号仅用于代码格式):


    我向您展示了获取正确字符串的方法,希望能帮助您:

    假设有一个包含x和y值的元组列表

    val dataSet:List[(Int,Int)] = new List((0,1),(1,3),(2,6))
    
    我制作我的JObject(
    net.liftweb.json.JsonAST.JObject
    ):

    然后我得到如下字符串:

    val jsonString:String = compact(render(jsonTmp))
    
    compact(d:Document):String
    &
    render(value:JValue):Document
    来自json包

    这是结果字符串(三重引号仅用于代码格式):

    我明白了:

    val process_id = json.process_id match { case JString(s) => s.toInt }
    
    我明白了:

    val process_id = json.process_id match { case JString(s) => s.toInt }