[英]value keys is not a member of play.api.libs.json.JsValue
我試圖從Scala的JsValue類型的鍵中弄清楚。 我在Google上搜索了很多,以了解如何從JsValue類型獲取頭鍵。
最后,我發現result.keys.head是獲取head鍵的方法,但是它拋出錯誤 值鍵不是play.api.libs.json.JsValue的成員 。
我的結果變量具有以下數據形式:
{
"intents": [{
"intent": "feeling",
"confidence": 0.1018563217175903
}],
"entities": [],
"input": {
"text": "{reset-encounter}"
},
"output": "Good"
}
碼:
import play.api.libs.json._
val jsonStr = """
{
"intents": [{
"intent": "feeling",
"confidence": 0.1018563217175903
}],
"entities": [],
"input": {
"text": "{reset-encounter}"
},
"output": "Good"
}
"""
val result = Json.parse(jsonStr)
println("key: ", result.keys.head)
在result.keys.head行上,引發錯誤。
我不確定,但我認為可能是我在這里做錯了。
你想得到什么? 那不是處理play.api.Json
對象的方法。
.keys將導致Map
而不是JsValue。
檢查文檔: https : //www.playframework.com/documentation/2.5.x/ScalaJson
如果要訪問特定的密鑰( https://www.playframework.com/documentation/2.5.x/ScalaJson#Traversing-a-JsValue-structure ),則應嘗試:
result \ "keyName"
或進行遞歸搜索:
result \\ "keyName"
Json.parse
產生一個JsValue
,它可以表示任何類型的json對象(布爾值,數字,數組等)。 如果知道您正在使用對象,則可以使用.as[JsObject]
:
import play.api.libs.json._
val result = Json.parse(jsonStr).as[JsObject]
println("key: " + result.keys.head)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.