值键不是play.api.libs.json.JsValue的成员
我试图从Scala中JsValue类型的键中获取头部。我在谷歌上搜索了很多,想知道如何从JsValue类型中获取头键 最后,我发现result.keys.head是获取head键的方法,但它抛出错误值键不是play.api.libs.json.JsValue的成员 我的结果变量具有以下数据形式:值键不是play.api.libs.json.JsValue的成员,json,scala,playframework,Json,Scala,Playframework,我试图从Scala中JsValue类型的键中获取头部。我在谷歌上搜索了很多,想知道如何从JsValue类型中获取头键 最后,我发现result.keys.head是获取head键的方法,但它抛出错误值键不是play.api.libs.json.JsValue的成员 我的结果变量具有以下数据形式: { "intents": [{ "intent": "feeling", "confidence": 0.1018563217175903 }],
{
"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将生成一个映射
,而不是JsValue
检查文档:
如果要访问特定密钥(),应尝试:
result \ "keyName"
或用于递归搜索:
result \\ "keyName"
你想得到什么?这不是处理
play.api.Json
对象的方法
.keys将生成一个映射
,而不是JsValue
检查文档:
如果要访问特定密钥(),应尝试:
result \ "keyName"
或用于递归搜索:
result \\ "keyName"
Json.parse
生成一个JsValue
,它可以表示任何类型的Json对象(布尔、数字、数组等)。如果您知道您正在使用一个对象,可以使用。作为[JsObject]
:
import play.api.libs.json._
val result = Json.parse(jsonStr).as[JsObject]
println("key: " + result.keys.head)
Json.parse
生成一个JsValue
,它可以表示任何类型的Json对象(布尔、数字、数组等)。如果您知道您正在使用一个对象,可以使用。作为[JsObject]
:
import play.api.libs.json._
val result = Json.parse(jsonStr).as[JsObject]
println("key: " + result.keys.head)
请发布实际生成代码的代码error@AlvaroCarrasco:谢谢。请查看代码。
JsValue
实际上没有键
JsObject
does。您需要将其转换为JsObject
-result.asInstanceOf[JsObject].keys.head
。请发布生成error@AlvaroCarrasco:谢谢。请查看代码。JsValue
实际上没有键
JsObject
does。您需要将其转换为JsObject
-result.asInstanceOf[JsObject].keys.head
。如果您想将json对象建模到您的域(案例类),请检查@Sarvesh Kumar Singh提到的json对象,json对象有键,而JsValue没有键。假设,我不知道Json对象的键,那么我需要.keys来获取它们。如果您想将Json对象建模到您的域(案例类),请检查@Sarvesh Kumar Singh提到的,Json对象有键,而JsValue没有。假设,我不知道Json对象的键,那么我需要.keys来获取它们。