我需要使用Scala在我的JSON对象中过滤此名称/值对(“seq”:15)的值。 以下是我的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
}
答案 0 :(得分:-1)
问题在于正则表达式。我之前使用过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
}