8
Tiếp theo bài viết này https://github.com/FasterXML/jackson-module-scala/wiki/EnumerationsJSON serialization enums Scala sử dụng Jackson
Việc kê khai liệt kê là như
object UserStatus extends Enumeration {
type UserStatus = Value
val Active, Paused = Value
}
class UserStatusType extends TypeReference[UserStatus.type]
case class UserStatusHolder(@JsonScalaEnumeration(classOf[UserStatusType]) enum: UserStatus.UserStatus)
Các DTO được khai báo là
class UserInfo(val emailAddress: String, val userStatus:UserStatusHolder) {
}
và mã serialization là
val mapper = new ObjectMapper()
mapper.registerModule(DefaultScalaModule)
def serialize(value: Any): String = {
import java.io.StringWriter
val writer = new StringWriter()
mapper.writeValue(writer, value)
writer.toString
}
Các kết quả JSON serialization là
{
"emailAddress":"[email protected]",
"userStatus":{"enum":"Active"}
}
Có thể để có được nó trở thành mẫu dưới đây?
{
"emailAddress":"[email protected]",
"userStatus":"Active"
}
Hoạt động tuyệt vời. Cảm ơn :-) – sriram