2016-06-21 95 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 

}