【问题标题】:Cannot resolve symbol foreach in Scala无法解析 Scala 中的符号 foreach
【发布时间】:2023-02-26 19:18:55
【问题描述】:

我有一个带有地图结构的数据。我想迭代数据并提取具有特殊值的键列表。我写了下面的代码:

val jsonString = os.read(os.pwd/"src"/"main"/"scala"/"config.json")
val data = ujson.read(jsonString)
for ((k,v) <- data) println(s"key: $k, value: $v")

但是当我运行它时,收到此错误:

Can not resolve foreach symbol

另外,当我在sbt shell中写run时;它告诉我这个错误:

[error] /home/spark/scala_project/test/src/main/scala/main.scala:99:17: value withFilter is not a member of ujson.Value.Value
[error]   for ((k,v) <- data) println(s"key: $k, value: $v")
[error]                 ^
[error] one error found
[error] (Compile / compileIncremental) Compilation failed

我将此依赖项添加到构建.sbt.但是,并没有解决问题。

libraryDependencies += "com.foreach.across" % "跨核心" % "5.1.3.RELEASE"

你能指导我如何解决这个问题吗?

非常感谢任何帮助。

【问题讨论】:

    标签: json scala dictionary upickle


    【解决方案1】:

    不确定您为什么决定添加"com.foreach.across" % "across-core"。这是春天的东西

    Across 是一个 Java 框架,旨在促进 Java(Web)应用程序的基于模块的开发。它在很大程度上建立在 Spring 框架之上,并允许定义一个由许多类和配置文件组成的模块。每个模块都定义了自己的 Spring 应用程序上下文,并且可以与其他模块共享一个或多个 bean。 https://mvnrepository.com/artifact/com.foreach.across/across-core

    您没有指定您使用的是什么 json 库。我怀疑是李浩一的uJsonhttps://www.lihaoyi.com/post/uJsonfastflexibleandintuitiveJSONforScala.html,这是他upicklehttps://github.com/com-lihaoyi/upicklehttps://com-lihaoyi.github.io/upickle/的后台

    尝试

    val m = data.asInstanceOf[ujson.Obj].value
    for ((k, v) <- m) println(s"key: $k, value: $v")
    

    或者

    data match {
      case ujson.Obj(m) => for ((k, v) <- m) println(s"key: $k, value: $v")
    }
    

    【讨论】:

    • 亲爱的@Dmytro Mitin,感谢您的回答,它解决了问题。是的,我使用的是upickle。事实上,我是 Scala 的新手。我搜索 foreach 依赖项并找到 "com.foreach.across" % "across-core"
    猜你喜欢
    • 2021-03-28
    • 2017-03-29
    • 1970-01-01
    • 1970-01-01
    • 2021-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-07-20
    相关资源
    最近更新 更多