JSON 使用 Http AKKA 和大小写的响应 类
JSON response with Http AKKA and case classes
我想使用 Http AKKA 构建一个具有多个路由的简单存根服务器。
我有以下情况 class:
case class Person(name: String, age: Int)
object Person {
implicit def cardJsonFormat: RootJsonFormat[Person] = jsonFormat2(Person.apply)
}
我如何 return 这种情况 class 作为 JSON 回应。
我的路线如下:
case class Person(name: String, age: Int)
def route =
get {
path("person") {
complete {
}
}
}
你应该尝试这样的事情:
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport
import akka.http.scaladsl.server.Directives._
import spray.json.DefaultJsonProtocol
case class Person(name: String, age: Int)
case object Person extends SprayJsonSupport with DefaultJsonProtocol {
implicit val personFormat = jsonFormat2(Person.apply)
}
object PersonRoute {
val route =
get {
path("person") {
complete {
Person("Pawel", 25)
}
}
}
}
可以在 docs.
中找到更多详细信息和示例
我发现以下库 akka-http-json used with json4s 很有用。它帮助我减少了 jsonFormatX
语句的数量。每个需要编组/解组的数据类型都需要每个 jsonFormatX
语句。
只需在需要编组/解组的地方混合以下特征:
import de.heikoseeberger.akkahttpjson4s.Json4sSupport
import org.json4s.jackson
trait JsonCodec extends Json4sSupport {
import org.json4s.DefaultFormats
import org.json4s.ext.JodaTimeSerializers
implicit val serialization = jackson.Serialization
implicit val formats = DefaultFormats ++ JodaTimeSerializers.all
}
我想使用 Http AKKA 构建一个具有多个路由的简单存根服务器。 我有以下情况 class:
case class Person(name: String, age: Int)
object Person {
implicit def cardJsonFormat: RootJsonFormat[Person] = jsonFormat2(Person.apply)
}
我如何 return 这种情况 class 作为 JSON 回应。
我的路线如下:
case class Person(name: String, age: Int)
def route =
get {
path("person") {
complete {
}
}
}
你应该尝试这样的事情:
import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport
import akka.http.scaladsl.server.Directives._
import spray.json.DefaultJsonProtocol
case class Person(name: String, age: Int)
case object Person extends SprayJsonSupport with DefaultJsonProtocol {
implicit val personFormat = jsonFormat2(Person.apply)
}
object PersonRoute {
val route =
get {
path("person") {
complete {
Person("Pawel", 25)
}
}
}
}
可以在 docs.
中找到更多详细信息和示例我发现以下库 akka-http-json used with json4s 很有用。它帮助我减少了 jsonFormatX
语句的数量。每个需要编组/解组的数据类型都需要每个 jsonFormatX
语句。
只需在需要编组/解组的地方混合以下特征:
import de.heikoseeberger.akkahttpjson4s.Json4sSupport
import org.json4s.jackson
trait JsonCodec extends Json4sSupport {
import org.json4s.DefaultFormats
import org.json4s.ext.JodaTimeSerializers
implicit val serialization = jackson.Serialization
implicit val formats = DefaultFormats ++ JodaTimeSerializers.all
}