簡體   English   中英

值鍵不是play.api.libs.json.JsValue的成員

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM