【发布时间】:2019-08-11 12:11:10
【问题描述】:
我正在尝试使用 pureconfig 对嵌套案例类进行反序列化,但代码无法编译。我有以下几点:
import com.typesafe.config.{Config, ConfigFactory}
import pureconfig.error.ConfigReaderFailures
import pureconfig.generic.ProductHint
import pureconfig.generic.semiauto._
import pureconfig.{CamelCase, ConfigFieldMapping}
class ClassAReader {
implicit def classAHint = ProductHint[ClassA](ConfigFieldMapping(CamelCase, CamelCase))
implicit def classBHint = ProductHint[ClassB](ConfigFieldMapping(CamelCase, CamelCase))
implicit val classAReader = deriveReader[ClassA]
implicit val classBReader = deriveReader[ClassB]
def read(config: Config): ClassA = pureconfig.loadConfig[ClassA](config.getConfig("foo")).fold((a: ConfigReaderFailures) => throw new Exception(), conf => conf)
val config = ConfigFactory.parseString("""{ a: { one: 1, two: "foo" }, b: { one: 2, two: "bar" }, 42 }""")
val reader = new ClassAReader
reader.read(config)
}
case class ClassA(a: ClassB, b: ClassB, other: Int)
case class ClassB(one: Int, two: String)
但我遇到了编译问题。有谁知道我做错了什么?
【问题讨论】:
标签: scala nested deserialization pureconfig