0

我是 akka-http 的新手。我在我的项目中使用它。我无法理解到底是marshalling什么unmarshalling

如果有人可以用一个简短的例子来解释它,展示如何编组和解组 json。

4

1 回答 1

3

当您收到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}")
  }
}

此处文档中的示例说明 您需要在您的范围内使用隐式格式化程序才能成功解组,并且该数字与您的案例类中的字段数相匹配。

于 2015-10-23T09:45:17.257 回答