Ich versuche YAML
Datei von Scala
zu lesen, und ich kann die Datei mit dem unten angegebenen Code lesen. Einer der Nachteile, die ich hier sehe, ist die Notwendigkeit für mich, case class
zu erstellen, um eine Zuordnung mit der YAML
Datei zu haben, die ich verwende. Jedes Mal, wenn ich den Inhalt von YAML
ändere, wird es notwendig für mich, die case class
zu ändern. Gibt es eine Möglichkeit in Scala zu lesen YAML
ohne die Notwendigkeit für mich, die case class
zu erstellen. (Ich habe auch verwendet, Python
YAML
zu lesen, wo wir haben nicht die Einschränkung der Zuordnung eines Class
mit der YAML
Struktur ... und möchte in Scala
ähnlich, was zu tun)Lesen von YAML in Scala ohne "Fallklasse"
Hinweis: Als ich ein hinzufügen neue Eigenschaft in YAML
und wenn mein case class
ich UnrecognizedPropertyException
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
keine passende Eigenschaft haben (Dies funktioniert mit Code)
country: US
state:
- TX
- VA
sample.yaml
(Diese throws Exception)
country: US
state:
- TX
- VA
continent: North America