使用Scala从JSON对象中过滤值

时间:2016-06-21 06:54:50

标签: json scala

我需要使用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

}

1 个答案:

答案 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

}