2014-12-19 57 views
3

如何從Scala中的Json對象中獲取特定字段?我感覺自己正在圈子裏。在Scala中獲得一個字段json4s

import org.json4s._ 
import org.json4s.jackson.JsonMethods._ 

val me = parse(""" {"name":"brian", "state":"frustrated"} """) 

現在我想只是狀態。我一直在尋找類似

me("state") -> "frustrated" 

我已經試過

me("state") 
me.get("state") 
me \ "state" <thanks for the idea> 
me['state'] 
me.state 
me.NOOOOOOOOOO!!!!!!! 

幫助?

+1

你有沒有試過..我「國家」。查看測試規範https://github.com/json4s/json4s/blob/master/tests/src/test/scala/org/json4s/ExtractionExamplesSpec.scala – 2014-12-19 00:04:08

+0

@ m-z修復了錯字,謝謝。 – 2014-12-19 05:09:45

回答

5

我認爲你的代碼有errta,下面可能是正確的代碼。

假設狀態字段中的值的類型是固定的,比如它的類型是字符串。

val me = parse("""{"name":"brian", "state":"frustrated"}""") 
val JString(state) = me \ "state" 
+0

這對我來說是一種非常外來的語法。謝謝! – 2014-12-19 05:09:27

+0

@BrianDolan你可以檢查狀態的類型?表達式「state.isInstanceOf [String]」是String的值。 – 2014-12-19 15:18:50

+0

這是我的錯誤,刪除了評論。我非常感謝你的幫助。現在我必須進入嵌套字段。 – 2014-12-19 15:19:49