正常解决方案未修复的 Scala Lift JSON 错误
Scala Lift JSON error that is not fixed with normal solution
我有 following Scala project on GitHub. In that repo I have a class, Configurator
,它的工作是将 JSON 文件的内容读入一个字符串,然后使用 Lift JSON 库将字符串反序列化为一个实例AppConfig
:
import scala.io.Source
import net.liftweb.json._
class Configurator {
def loadConfigs(configFileUri : String) : AppConfig = {
implicit val formats = net.liftweb.json.DefaultFormats
parse(Source.fromFile(configFileUri).mkString).extract[AppConfig]
}
}
如果你克隆它然后 运行 ./gradlew run
你会得到以下异常:
/Users/myuser/intellij-scala-gradle-example/shared/src/main/scala/com/me/myapp/Configurator.scala:9: could not find implicit value for parameter formats: net.liftweb.json.Formats
parse(Source.fromFile(configFileUri).mkString).extract[AppConfig]
如果您 Google 那个例外,您会看到 10,000 条关于 implicit
格式修复的建议,我实施正确 here。但这对我不起作用。所以我想知道:
- 为什么我会看到这个异常?
- 修复了什么?
从 Lift JSON 切换到 GSON,我所有的问题都消失了。
我有 following Scala project on GitHub. In that repo I have a class, Configurator
,它的工作是将 JSON 文件的内容读入一个字符串,然后使用 Lift JSON 库将字符串反序列化为一个实例AppConfig
:
import scala.io.Source
import net.liftweb.json._
class Configurator {
def loadConfigs(configFileUri : String) : AppConfig = {
implicit val formats = net.liftweb.json.DefaultFormats
parse(Source.fromFile(configFileUri).mkString).extract[AppConfig]
}
}
如果你克隆它然后 运行 ./gradlew run
你会得到以下异常:
/Users/myuser/intellij-scala-gradle-example/shared/src/main/scala/com/me/myapp/Configurator.scala:9: could not find implicit value for parameter formats: net.liftweb.json.Formats
parse(Source.fromFile(configFileUri).mkString).extract[AppConfig]
如果您 Google 那个例外,您会看到 10,000 条关于 implicit
格式修复的建议,我实施正确 here。但这对我不起作用。所以我想知道:
- 为什么我会看到这个异常?
- 修复了什么?
从 Lift JSON 切换到 GSON,我所有的问题都消失了。