I'm using the json4s library to convert scala case classes into json messages. My case classes are dependent on third party java enum types:
//third party java code
public enum Fruit {
Banana (1),
Cherry (2);
}
My scala classes then use this enum as a parameter:
case class Order(fruit : Fruit, quantity : Int)
I'm trying to use EnumNameSerializer
provided by the `org.json4s.ext' library:
import org.json4s._
import org.json4s.native.Serialization
import org.json4s.native.Serialization.{write, read}
import org.json4s.ext.EnumNameSerializer
case class Order(fruit : Fruit, quantity : Int) {
implicit lazy val formats =
DefaultFormats + new EnumNameSerializer(fruit)
}
But, I'm getting a compile time error:
error: inferred type arguments [Fruit] do not conform to class EnumNameSerializer's type parameter bounds [E <: Enumeration]
How do I convert a java enum into a scala Enumeration for json4s' EnumNameSerializer?
I'm hoping to avoid writing a custom serializer since my actual use case involves many different java enum types used in my case class and therefore I would have to write many different custom serializers.
Thank you in advance for your consideration and response.