YAML
파일을 Scala
에서 읽으려고하고 있으며 아래 코드를 사용하여 파일을 읽을 수 있습니다. 여기에서 볼 수있는 단점 중 하나는 내가 사용하고있는 YAML
파일로 매핑하기 위해 case class
을 생성해야한다는 것입니다. YAML
의 내용을 변경할 때마다 case class
을 변경해야합니다. 스칼라에서 YAML
을 읽는 방법이 있습니까?case class
을 만들 필요가 없습니다. (나는 또한 YAML
을 읽을 Python
을 사용하고, 우리가 YAML
구조와 Class
매핑의 제약이없는 ... 그리고 Scala
비슷한 일을하고 싶은 경우)'case class'가없는 스칼라에서 YAML 읽기
주을 : 나는를 추가 할 때 YAML
에서 내 case class
경우 새 속성 내가
package yamlexamples
import com.fasterxml.jackson.dataformat.yaml.YAMLFactory
import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.module.scala.DefaultScalaModule
object YamlTest extends App{
case class Prop(country: String, state: List[String])
val mapper: ObjectMapper = new ObjectMapper(new YAMLFactory())
mapper.registerModule(DefaultScalaModule)
val fileStream = getClass.getResourceAsStream("/sample.yaml")
val prop:Prop = mapper.readValue(fileStream, classOf[Prop])
println(prop.country + ", " + prop.state)
}
sample.yaml
UnrecognizedPropertyException
를 얻을 일치하는 속성이없는
country: US
state:
- TX
- VA
(이 예외를 throw)
country: US
state:
- TX
- VA
continent: North America