我是akka-http的新手。我在我的项目中使用了这个。我不能理解marshalling和unmarshalling到底是什么。
如果有人能用一个简单的例子来解释一下如何编组和解组。
发布于 2015-10-23 17:45:17
当你在http中收到一个请求时,它是有线格式的,即字节串,解组是将这个字节串转换为更高级别的格式,而在另一边是编组,你将其转换为低级格式。
在akka-http中将json string(str)转换为case class(person)的示例
case class Person(name: String, age: Int)
val str = """{"name": "some", "aga": 10}"""
impicit val jsonF = jsonFormat2(Person)
val person = JsonParser(str).convertTo[Person]但更好的方法是使用akka-http中的实体指令:
val route = post {
entity(as[Person]) { person =>
complete(s"Person: ${person.name} - favorite number: ${person.favoriteNumber}")
}
}文档here中的示例表明,您需要在您的作用域中使用隐式格式器才能成功解组,并且需要的数字与case类中的字段数量相匹配。
https://stackoverflow.com/questions/30840714
复制相似问题