【发布时间】:2021-10-06 07:29:55
【问题描述】:
我正在研究库 zio-kafka,我想使用 zio-json 以 JSON 格式反序列化消息的值。
我有一个简单的案例类以及它的解码器和编码器:
case class Player(name: String, score: Int)
object Player {
implicit val decoder: JsonDecoder[Player] = DeriveJsonDecoder.gen[Player]
implicit val encoder: JsonEncoder[Player] = DeriveJsonEncoder.gen[Player]
}
现在,我从使用上述解码器/编码器的Serde.string 开始创建了一个Serde:
val playerSerde: Serde[Any, Player] = Serde.string.inmapM { playerAsString =>
ZIO.fromEither(playerAsString.fromJson[Player].left.map(new RuntimeException(_)))
} { playerAsObj =>
ZIO.effect(playerAsObj.toJson)
}
正确吗?还有其他(更好的)方法吗?
【问题讨论】:
标签: json scala apache-kafka zio zio-streams