【发布时间】:2016-05-30 23:58:18
【问题描述】:
我正在尝试实现一个通用模式,使用 Argonaut 为 Akka HTTP REST 服务生成编组器和解组器,同时处理实体和集合级别的请求和响应。我在实现实体级别方面没有任何问题:
case class Foo(foo: String)
object Foo {
implicit val FooJsonCodec = CodecJson.derive[Foo]
implicit val EntityEncodeJson = FooJson.Encoder
implicit val EntityDecodeJson = FooJson.Decoder
}
我在尝试为以下内容提供编码器和解码器时遇到了问题:
[
{ "foo": "1" },
{ "foo": "2" }
]
我已尝试将以下内容添加到我的同伴:
object Foo {
implicit val FooCollectionJsonCodec = CodecJson.derive[HashSet[Foo]]
}
但是,我收到以下错误:
Error:(33, 90) value jencode0L is not a member of object argonaut.EncodeJson
我看到这种方法确实不存在,但有没有其他通用方法可以生成我的预期结果。我强烈避免使用额外的案例类来描述集合,因为我在我的用例中大量使用反射。
此时,我什至可以使用手动构建的编码器和解码器,但是,我没有找到有关如何使用预期结构构建它的文档。
【问题讨论】:
标签: json scala akka-http argonaut