2016-06-21 100 views
-3

我需要使用Scala在我的JSON对象中过滤此名称/值对(“seq”:15)的值。 以下是我的JSON对象的链接。使用Scala过滤来自JSON对象的值

http://www.jsoneditoronline.org/?id=23188a59d8a10673bcfb632bc6337173

以下是我已经使用功能:

def wsResponseToValidJsonString(resp: String): String = { 
println("This is response :" + resp) // prints Response message in JSON format 

//get latest seq number 
if (resp.contains("seq")) { 
    println("seq contains..") //prints the JSON response 
    val regSeq = new Regex(""".*?changes.*?"seq":(.*?),""") 
    lastSeq = ((regSeq findAllIn resp)).toString() 
    println(lastSeq) //prints non-empty iterator 
} 
return resp.split("""for\(;;\);""").last.stripPrefix("[").stripSuffix("]").trim 

}

+5

[SO]不是代码编写的服务。请告诉我们你已经尝试了什么以及你卡在哪里。请参阅[mcve] –

+0

我试图使用正则表达式筛选值。尽管无法过滤它。 – MPS

+0

再次,向我们展示你已经尝试过(这意味着代码)并阅读[mcve]链接。我们不能只是猜测你的问题。 –

回答

0

问题是与正则表达式。我之前使用过JavaScript正则表达式。以下是给出所需的价值。

def wsResponseToValidJsonString (resp: String): String = { 
println ("This is response :" + resp) // prints Response message in JSON format 
//get latest seq number 
if (resp.contains ("seq")) { 
println ("seq contains..") 
val regSeq = new Regex (""""seq":\d""") 
lastSeq = (regSeq findAllIn resp).mkString; 
println ("Last Sequence :" + lastSeq)//print required value} 
return resp.split ("""for\(;;\);""").last.stripPrefix ("[").stripSuffix ("]").trim 

}