【发布时间】:2019-11-25 17:18:37
【问题描述】:
我是 scala 的新手,我正在尝试编写一个接收 JSON 的函数,将其转换为 Scala 字典 (Map) 并检查某些键
下面是检查一堆键的函数的一部分
import play.api.libs.json.Json
def setParams(jsonString: Map[String, Any]) = {
val paramsMap = Json.parse(jsonString)
if (parmsMap.contains("key_1")) {
println('key_1 present')
}
使用sbt 编译时,出现以下错误
/Users/usr/scala_codes/src/main/scala/wrapped_code.scala:29:26: overloaded method value parse with alternatives:
[error] (input: Array[Byte])play.api.libs.json.JsValue <and>
[error] (input: java.io.InputStream)play.api.libs.json.JsValue <and>
[error] (input: String)play.api.libs.json.JsValue
[error] cannot be applied to (Map[String,Any])
[error] val paramsMap = Json.parse(jsonString)
[error] ^
[error] /Users/usr/scala_codes/src/main/scala/wrapped_code.scala:31:9: not found: value parmsMap
[error] if (parmsMap.contains("key_1")) {
此外,在 JSON 的键值对中,键都是字符串,但值可以是整数、浮点数或字符串。我需要为此做出改变吗?
【问题讨论】:
-
@andriy-plokhotnyuk 你介意在提到 jsoniter 时表明你是作者吗?
-
@andriy-plokhotnyuk 这是一条关于 SO 的规则,表明您在提出解决方案时参与其中。另一方面“如果您的系统仅接受可信输入或不需要效率,请随意跳过我的 cmets。”可以理解为除了你提到的没有其他解决方案...
标签: scala playframework sbt